Test de la fonction aléatoire rnd de visual basic

Soyez le premier à donner votre avis sur cette source.

Vue 15 405 fois - Téléchargée 1 120 fois

Description

Ce Simulateur de tirages du Loto montre que la fonction RND de Visual Basic permet de tirer des nombres
pseudo aléatoires de façon satisfaisante pour des combinaisons jusqu'à cinq numéros.Mais pour des combinaisons
de six numéros, la Pratique ne colle plus à la Théorie.On peut même voir que des combinaisons différentes,de six
numéros ne sont pas équiprobables.Ce qui bien sûr est loin d'être normal.Par exemple:la combinaison 5-15-25-35-45-27
sort bien trop souvent alors que c'est l'inverse pour la combinaison 1-2-3-4-5-6.Et ceci, même si on demande un très
grand nombre de tirages .(Par exemple 6500000000 tirages).
Pour beaucoup mieux simuler le Loto, un Générateur de nombres pseudo aléatoires existe:il s'agit du MERSENNE TWISTER
qui est très performant.Sa période est un nombre astronomique : (2^19937)-1 (Mais pour l'instant il n'est pas dans la source).
Pour se servir du programme,il faut entrer le nombre de tirages voulu et saisir une combinaison de six numéros à tester.
On lance ensuite par la commande SIMULER.Après un test de rapidité du PC, l'heure de la fin de la simulation s'affichera.

Source / Exemple :


DANS LE ZIP

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

amezghal
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
1 -
n'oublie d'ajouter la commande RANDOMIZE avant RND
lexsty
Messages postés
173
Date d'inscription
samedi 10 décembre 2005
Statut
Membre
Dernière intervention
18 juin 2017
-
Bonjour AMEZGHAL.
RANDOMIZE a toujours été présent et devant RND,bien sûr.
En cherchant, on le trouve après : " ' INITIALISATIONS ".
Merci quand même
Salut.
amezghal
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
1 -
y a des erreurs dans votre code pourquoi quelqu'uns donne des mauvaise notes
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
21 -
Randomize n'est pas nécessaire dans le cas ici présent puisqu'il faut tester tous les cas.

pas la peine non plus de faire un si grand nombre de tirages puisque la période n'est que de 2^24

donc sur 16777216 tirages maximum on doit trouver en théorie:
16777216 / 49 = 342392,1633

ce qui se vérifie après test:
on trouve 2 groupes:
342393 pour les nombres: 1,7,13,19,25,31,37,43
342392 pour tous les autres

donc pas très grande différence, on peut même dire que la répartition est bien équilibrée.

pour tous les tirages supplémentaires, la répartition sera un multiple de ces nombres aux bornes près, c'est à dire que si le nombre de tirage est un multiple de 2^24, les résultats seront exactement un multiple de 342392 ou 342393, Randomize ou pas.
lexsty
Messages postés
173
Date d'inscription
samedi 10 décembre 2005
Statut
Membre
Dernière intervention
18 juin 2017
-
En réponse à Gobillot : Je suis tout à fait d'accord avec la justesse de tes remarques.
Le problème reste quand même que du fait de la faible période
de RND,l'équiprobabilité des combinaisons à 6 n° n'est pas bonne
par exemple entre les combinaisons ( 5-15-25-35-45-27 ) et
( 1-2-3-4-5-6 ).Les écarts constatés sont vraiment importants.
Par contre si l'on teste beaucoup de combinaisons différentes,
la fréquence moyenne pour une sortie à 6 n° se rapproche mieux
de la fréquence théorique.
A plus.
JP.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.