Vraiment aléatoire ?

Niaphron - 18 avril 2001 à 19:44
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 20 janv. 2008 à 17:39
Bonjour, je voudrais savoir quand un on à 2 ordianteurs qui tire un nombre aléatoire à la mm heure, mm minute et mm seconde, est-ce-que les 2 ordi tirons le mm nombre ?
Si la réponse est nom alors pkoi on utiliser Randomize Timer ???????

6 réponses

bah g pas essayé mais je pense ke la réponse est oui , il tiron le meme nombre kar randomize timer génére des nombre aléatoire en fonction du timer
enfin , c a vérifier... ;-)
@+
fabs
0
Je sais qù´il y a des routines qui donnent tpujpours lem~eme nombre aléatoire á partir d´une même semence.
Dans ce cas il se pourrait que deux CP fonctionnant en parall`le dans les mêmes conditions donnebt le même paramètre.Les nombres obtenus ne peuvent pas alors être classés comme aléatoire (qui dépend uniquement du hasard).
Ce que l´ordinateur donne ce sont des nombres ditsa "pseudo-aléatoires". Le vrai aléatoire,c´est la Loterie Nationale..
Salut,
Marc
0
Si tu n'utilise pas randomize, tu es sûr que le premier nombre que tu vas avoir (à chaque fois que tu lance ton appli) sera le même: c'est une suite de chiffre.
Le randomize se base sur le timer pour avoir son premier chiffre donc c'est très rarement le même.
essaie ça avec et sans le randomize.

Private Sub Command1_Click()
randomize
Label1.Caption = Rnd()
End Sub

Tu verras que sans le randomize tu obtiens toujours le même chiffre (il faut relancer le prog à chaque fois)
Tu devrais obtenir 0.7055475
0
Salut,
On pourrait peur-être le vérifier comme suit:
-on tire n nombres "aléatoires" entre,disons 0 et 10.000
-On classe les nombres par intervalles:x1 entre et 1000,x2 entre 1000 et 2000,etc
- On calcule la fréquence dans chaque classe : xi/total de xi exprimé en pourcent.
-Si les nombres sont vraiment aléatoires, ils seront uniformément répartis dans toutes les classes;donc en connaissant le nombre total de x et le nombre total de classes,on peut calculer la fréquence théorique.
-On compare les fréquences observées et les fréquences calculées par un test statistique (je pense au chi carré).
- Si les nombres sont vraiment tirés au hasard, les deux fréquences,théorique et observée,ne peuvent pas être significativement différentes.
C´est facile d´imaginer un algorithme mais j´avoue que je ne l´ai pas programmé.
Re-Salut,
Marc
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut,
J´ai fait comme prévu en mettant en boucle Randomize et Int(1000*rnd)+1 donc je choisis des nombres de 1 à 1000.
Quand je fais 10.000 boucles,la distributon est comme prévue quasiment uniforme. Si cela intéresse quelqu`un,le signaler par mail. J´enverrai l´exercice (texte parfois mélangé de portugais..question d´habitude.).
RE et a+
marcdemets@brfree.com.br
Marc
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
20 janv. 2008 à 17:39
Pour répondre clairement à ta question

Si tu utilises une application qui se sert de l'heure système pour générer un nombre aléatoire et que tu demandes à deux ordinateurs de générer un nombre exactement en même temps alors les deux nombres seront les mêmes.

Mais cette réponse c'est de la théorie, en fait il n'y a aucune chance que ca se produise.

-Le premier obstacle c'est qu'il faut donner la consigne au même moment exactement et que ca c'est impossible. je m'explique si tu donnes la premiere consigne a un instant t, il faudra donner la deuxieme consigne au même instant t et la probabilité de donner une consigne a l'instant t est de 0. Et même mieux, quel que soit l'instant T donné la probabilité de donner la consigne a l'instant T est nulle parce qu'il existe une infinité d'instants possibles.

- Le deuxième obstacle est que même si tu donne les deux consignes en même temps, le moment où elles vont êtres détectées par les deux ordinateurs seront différents, selon leurs performances respectives mais aussi selon les actions qu'ils effectuent en même temps (ventilation, scan antivirus ....) ce qui va conduire a une deuxieme impossibilité.

La fonction de visual basix ne se sert du temps pour initialiser seulement pour pouvoir initialiser de facon "aléatoire" et simple, mais ca n'améliore pas la qualité de ta fonction Rnd.

Bonne journée.
0
Rejoignez-nous