begin process at 2010 02 10 08:20:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Erreur de probabilité


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Erreur de probabilité

lundi 24 avril 2006 à 16:43:03 | Erreur de probabilité

ProgVal

Bonjour,
J'utilise Random définir aléatoirement les 4 valeurs de mon tableau. Problème: 9 fois sur 10, le tableau est: {6,8,0,6}. Ce nombre n'est donc pas vraiment aléatoire. Pouvez-vous me dire comment faire? Merci d'avance.

//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int compte_tours;
    int choix[4];     //tableau random

    Randomize();
    for (compte_tours = 0;compte_tours <= RadioGroup1->ItemIndex; compte_tours++)
    {
        choix[compte_tours] = random(10);
    }
}
//---------------------------------------------------------------------------



Ps: j'utilise C++ Builder 3

lundi 24 avril 2006 à 16:54:38 | Re : Erreur de probabilité

meech

Membre Club
Réponse acceptée !

Salut,

Tu omets l'initialisation aléatoire du randomize() : typiquement, on peut utiliser la fonction srand avec le timestamp courant en paramètre (il change en permanence). Exemple :


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define randomize() (srand(time(0)))
#define random(x) (rand() % x)

int main(int argc, char *argv[])
{
  randomize();
  printf("%d\n", random(10));
  system("PAUSE"); 
  return 0;
}

lundi 24 avril 2006 à 17:23:14 | Re : Erreur de probabilité

ProgVal

Réponse acceptée !

A présent j'ai essayé de récupérer les centièmes de l'horloge de mon système, comme ceci:

//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int compte_tours;
    struct  time t;


    for (compte_tours = 0;compte_tours <= RadioGroup1->ItemIndex; compte_tours++)
    {
        gettime(&t);
        choix[compte_tours] = t.ti_hund%10;
    }
}
//---------------------------------------------------------------------------

Mais les 4 valeurs de mon tableau sont identiques (logique car elles ont été prisent en même temps)

lundi 24 avril 2006 à 17:52:27 | Re : Erreur de probabilité

ProgVal

Réponse acceptée !

J'ai trouvé la réponse! il suffit d'appuyer 4 fois sur mon Button1 voici donc mon unité:


//---------------------------------------------------------------------------
#include <stdlib.h>
#include <vcl.h>
#pragma hdrstop

#include   <stdio.h>
#include   <dos.h>


#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int choix[4];     //tableau random
int test[4];     //tableau à tester, choisi par l'utilisateur dans les ComboBox
int nb_juste, nb_mal_places;
int compte_tours_clique;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    compte_tours_clique=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{

    struct  time t;

    if (compte_tours_clique<=4)
    {
        gettime(&t);
        choix[compte_tours_clique] = t.ti_hund%10;
    compte_tours_clique = compte_tours_clique+1;
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    test[1] = 0;
    test[2] = 0;
    test[3] = 0;
    test[4] = 0;
    int test[4];     //tableau à tester, choisi par l'utilisateur dans les ComboBox
    int compte_tours, compte_tours2;

    if (RadioGroup1->ItemIndex >= 0)
    {
        test[0] = StrToInt(ComboBox1->Text);
    }
    if (RadioGroup1->ItemIndex >= 1)
    {
        test[1] = StrToInt(ComboBox2->Text);
    }
    if (RadioGroup1->ItemIndex >= 2)
    {
        test[2] = StrToInt(ComboBox3->Text);
    }
    if (RadioGroup1->ItemIndex >= 3)
    {
        test[3] = StrToInt(ComboBox4->Text);
    }

    for (compte_tours = 0;compte_tours <= RadioGroup1->ItemIndex; compte_tours++)
    {
        if (choix[compte_tours] == test[compte_tours])
        {
            nb_juste = nb_juste+1;
        }
        for (compte_tours2 = 0;compte_tours2 <= RadioGroup1->ItemIndex; compte_tours2++)
        {
            if ((test[compte_tours] == choix[compte_tours2]) && (compte_tours != compte_tours))
            {
                nb_mal_places = nb_mal_places + 1;
            }
        }
    }
    Label5->Caption = nb_juste;
    Label6->Caption = nb_mal_places;
    Label8->Caption = (RadioGroup1->ItemIndex + 1) - (nb_juste + nb_mal_places);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
    ShowMessage ("Appuyer 4 fois sur lancer");
}
//---------------------------------------------------------------------------

Merci quand même à Meech

lundi 24 avril 2006 à 17:53:59 | Re : Erreur de probabilité

ProgVal

Réponse acceptée !

Etant donné que le timer sont impressi, je pouvait aussi en utiliser comme mes plusieur clicks



Cette discussion est classée dans : erreur, tableau, compte, random, tours


Répondre à ce message

Sujets en rapport avec ce message

erreur vc++ 2005 [ par jerome86600 ] je vien d installer vc++2005 sur un pc qui a plusieur comptesj ai installé a partir du compte aministrateur et ca l air de bien marchermaintenant a pa Erreur sur delete[] et pb alocation mémoire [ par dan34 ] Salut,J'ai un soucis avec le bout de code suivant. En fait j'ai créé un objet qui contient un tableau de char dont j'alloue dynamiquement la taille en effacer un tableau [ par vectoriel ] Bonjour,J'ai créé un programme qui se sert d'un tableau de charactere a plusieurs reprises. J'ai donc besoin de vider le tableau a chaque fois mais je Random en C [ par Floriand60 ] Bonjour je viens de creer un petit code en C ou un utilisateur choisi 6 nombre qui sont dans un tableau ( il les tap l un apres l autre le tableau n e erreur dans la classe [ par Miss1 ] je n'arrive pas a compiler. le sujet est de crée une taille, un pointeur sur le 1er element du tableau, un constructeur, un constructeur par recopie , toujour pb avec la onction destructeur [ par Miss1 ] le pb dans la fonction c'est qu'il me dit qu'il ne reconnait pas la syntax et qu'il y a un pb avec new de meme avec strcpy tableau::tableau (const ta Linux - Acces aux fichiers [ par Ensias ] je programme en c sous linux  , et parfois lorsque j'utilise fopen il me sort une erreur de segmentation.est ce que quelqu'un connait le sens de cette Probleme tableau de pointeur vers des image [ par noetom ] Bonjour, Je fais un programme qui travaille avec un grand nombre d'image mais j'aimerai ne garder que 4 images à la fois en mémoire. J'ai donc une initialisation CSstring [ par moumouteb ] Voila je voudrais initialiser un tableau de carractère membre de classe. J'utilise une architecture MFC et donc la ligne suivante ne marche pas : cha


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales