Comment créer un nombre VRAIMENT aléatoire?

Signaler
Messages postés
10
Date d'inscription
samedi 10 août 2002
Statut
Membre
Dernière intervention
28 février 2003
-
Messages postés
11
Date d'inscription
mercredi 28 août 2002
Statut
Membre
Dernière intervention
6 janvier 2003
-
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

Messages postés
13
Date d'inscription
lundi 12 août 2002
Statut
Membre
Dernière intervention
17 mai 2005

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
Messages postés
386
Date d'inscription
samedi 4 octobre 2008
Statut
Membre
Dernière intervention
19 février 2018
2
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
Messages postés
11
Date d'inscription
mercredi 28 août 2002
Statut
Membre
Dernière intervention
6 janvier 2003

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