Comment créer un nombre VRAIMENT aléatoire?

Wbartw Messages postés 10 Date d'inscription samedi 10 août 2002 Statut Membre Dernière intervention 28 février 2003 - 12 août 2002 à 00:21
cs_Slan Messages postés 11 Date d'inscription mercredi 28 août 2002 Statut Membre Dernière intervention 6 janvier 2003 - 2 sept. 2002 à 22:46
En effet, la ligne de code "variable = Int((borne supérieure - borne inférieure + 1) * Rnd + borne inférieure)" retourne une suite de valeurs qui est toujours la même. Je voulais savoir si il existait un moyen de créer de "vrais" nombres aléaoires...

PS : pour ma part, j'ai essayé de placer un timer qui change à chaque fois la valeur du nombre aléatoire et donc qui permet d'avoir des suites de nombre différentes losque l'utilisateur clique sur un bouton par exemple.(pour être plus clair, la valeur de l'aléatoire dépend du moment où l'utilisateur décide de cliquer sur le bouton...)
Merci

3 réponses

bdangla Messages postés 13 Date d'inscription lundi 12 août 2002 Statut Membre Dernière intervention 17 mai 2005
12 août 2002 à 09:43
Bah, sur le principe, générer un nombre aléatoire avec un ordinateur c'est théoriquement impossible.
D'ou la mise en oeuvre d'une formule mathématique (Rnd(val1)) dont on peut considérer que le nombre généré est "aléatoire".
Bien qu'ayant étudié cette formule lors de mes lointains cours de math, je serais bien incapable de te la retrouver et encore moins de t'en faire la démonstration.
Le seul problème dans cette formule est efffectivement de déterminer le premier nombre à utiliser (val1).
Et, pour ma part, la méthode que tu emplois reste la meilleur.
0
gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
12 août 2002 à 09:49
Bonjour,

"Rnd" fonctionne avec une table de valeur, si tu veux génère une autre table pour avoir un nouvel ordre de valeur aléatoire utilise la fonction "Randomize" avant Rnd * ??.

A++
[Gally Home Corp]
0
cs_Slan Messages postés 11 Date d'inscription mercredi 28 août 2002 Statut Membre Dernière intervention 6 janvier 2003
2 sept. 2002 à 22:46
salut wbartw,

J'ai si tu veux qq formule et procéder pour obtenir des nombres aléatoires.

I) La technique la plus souvent exploitée repose sur les congruences linéaires. Pour une valeur X entre 0 et M (entiers), le générateur fonctionne par :

Xn+1 = (A.Xn + C) mod M.

où A, C sont aussi des entiers (inférieurs à M).

II) Une fonction générée par l'ordinateur est un ensemble discret de points, donc nous pouvons dire que nous savons générer les fonctions aléatoires. Mais, en fait, la seule chose qui peut sortir de nos générateurs actuels est le bruit blanc

Tu pourra tester :

An+1 = 1 – (K . An²) avec K dans [1 ; 2]

Plus K tend vers 2, plus elle a un bruit aléatoire
Ou même :

f(x) = [Somme]k=1->n (rk sin(kx + ak))

si tu veux plus d'explications, mail-moi
(morphos@gmx.fr) ou fait suivre ton message à celui-ci.
Voila !
0
Rejoignez-nous