begin process at 2012 02 12 03:26:23
  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 Allocation dynamique tableau 2D : erreur de seg [ par noname001 ] Bonjour à tous, [^^happy13] j'aimerais faire appel à vos lumières concernant deux codes. Ils ont tous les deux pour but de créer un tableau 2D dynami 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 , ERROR C1217 [ par nostalgieing ] Bonjour, Je suis debutante en developpement [b]C/C++[/b] j'ai un fichier [b]transcode.cpp [/b]à compiler mais il me parait une erreur de type [b]C21 Problème avec un tableau string [ par 4u4me4us ] Bonjour tout le monde, je me permet de vous sollicité car je ne comprends pas mon erreur de compilation. J'ai une class que j'ai nommé "perso". Dan erreur connection avec la base [ par langy ] bonjour comment corriger l'erreur suivante: 339 C:\Dev-Cpp\include\MYSQL\mysql_com.h `SOCKET' was not declared in this scope merci de m'aider


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 7,020 sec (3)

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