Comment marche .... le random ?

Fermé
Eolymhn - 27 févr. 2005 à 13:24
Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008 - 3 mars 2005 à 16:07
Bonjour,

Je me pose depuis longtemps : Comment fonctionne le random ? quel est son algorithme ?

J'ai fait des recherches mais je n'ai rien trouvé ... j'y ai réfléchi et je ne vois pas la logique de la chose ...

Comment les machines génère-t-elle des chiffres sans liens et aboutissants à une moyenne qui vérifie les règles de probabilité...

petit détaille : J'ai constaté en classe avec des calculatrices Texas Instruments 82, proposant cette fonction, qu'elles donnaient toutes les mêmes résultats pour les premières utilisations ... par la suite il y a eux un décalage selon le nombre d'utilisation du mode ... Elle utilise donc bien à un algorithme ...

merci d'avance.

6 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
2 mars 2005 à 16:26
Ah !
Excellente question.

Chaque compilateur (pour être précis, chaque librairie) possède sa propre fonction random().

Il y a plusieurs méthodes, utilisant des multiplications, modulos, racines carrées, masques de bits, hashage... il y a le choix.


Le truc, c'est que tout programme étant déterministe, un ordinateur est techniquement incapable de générer des nombres aléatoires.

C'est pour cela qu'on les appels pseudo-aléatoires.
(PRNG = Pseudo-random number generators).


Les mauvais PRNG redonnent rapidement la même suite de nombre, sont biaisés ou pire (prédiction possible des valeurs suivantes).

Et même un bon PRNG donnera toujours les mêmes valeurs s'il est toujours initialisé de la même façon.
1
White_Pink Messages postés 6 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 27 février 2005 1
27 févr. 2005 à 14:22
Je CROIS qu'ils prennent une des décimales de la racine carré de l'heure actuelle, la position de la souris, ...

Mais JE N'EN SUIS ABSOLUMENT PAS SÛR :)
0
Je ne penses pas ... il n'y a pas de curseur à une calculatrice, et pas non plus l'heure ...

Ca va rester inexpliqué ?
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
2 mars 2005 à 16:34
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
2 mars 2005 à 16:36
Le PRNG le plus à la mode, car il semble donner d'excellents résultats, c'est Mersenne Twister.


Voici un exemple de (très mauvais) PRNG:
a = (a*7) mod 10

(mod étant le reste de la division entière).

Ce PRNG donne des nombres pseudo-aléatoire entre 0 et 9.
Mais il cycle assez rapidement.
0
Merci beaucoups pour ces précisions ^^

Le randomise répond donc bien à un algorithme, différent selon les programmes...

Bon, il va falloir inventer une installation de jeu de dés dans le pc ;) encore qu'il serrait capable de retrouver chaque fois les mêmes résultats s'il est précis ^^

encore merci ++
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655 > Eolymhn
2 mars 2005 à 17:46
Il existe des moyens pour générer de vrais nombres aléatoires sur ordinateur:

- utiliser une webcam pour capturer l'image de phénomènes chaotiques (lava-lamps, etc.)
- utiliser des cartes d'extension spécialisées (ponts de diodes produisant du bruit blanc, source de chaleur émettant des électrons, désintégration de matière radioactive...)

Voir:
http://www.commentcamarche.net/forum/affich-1193805#6
ainsi que:
http://www.lavarnd.org/
et
http://www.ietf.org/rfc/rfc1750.txt
0

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

Posez votre question
random Messages postés 1612 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 30 mars 2006 155
2 mars 2005 à 16:53
pour le respect de la moyenne et de l'écart type c'est
plus facile
avec moyenne et écart type tu calcules l'étendue
et tu interpoles ensuite le chiffre obtenu au tirage
0
Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008
3 mars 2005 à 16:07
Hello!

Sortir des nombres aléatoire c'est absolument impossible!!!! Seuls les humains en sont capable ^^ L'ordinateur aura tjs besoin d'une unité pour générer un nombre pseudo aléaoire... il est obligé de se reférer à qqch.. Par exemple en PHP la fonction rand se réfère au temps en miliseconde..
0