Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1600 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Nombres aléatoires

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Nombres aléatoires

n°972250
judicael
Posté le 04-02-2005 à 18:44:07  profilanswer
 

Je poste ça sur le forum PHP, mais la question est valable pour tous les langages de programmations...
Quand on lance une fonction qui crée un nombre aléatoire, qu'est ce qui se passe ? Je me doute bien que le mot "aléatoire" est une métaphore et que l'ordinateur ne ressort pas un nombre ex-nihilo.
Alors d'ou vient ce nombre aléatoire ?
 
meric !

mood
Publicité
Posté le 04-02-2005 à 18:44:07  profilanswer
 

n°972280
Hermes le ​Messager
Breton Quiétiste
Posté le 04-02-2005 à 19:10:17  profilanswer
 

judicael a écrit :

Je poste ça sur le forum PHP, mais la question est valable pour tous les langages de programmations...
Quand on lance une fonction qui crée un nombre aléatoire, qu'est ce qui se passe ? Je me doute bien que le mot "aléatoire" est une métaphore et que l'ordinateur ne ressort pas un nombre ex-nihilo.
Alors d'ou vient ce nombre aléatoire ?
 
meric !


 
En effet, ça n'existe pas, mais un rand(mktime(date(...))) te donnera un bon compromis...  :D


Message édité par Hermes le Messager le 04-02-2005 à 19:10:28
n°972287
judicael
Posté le 04-02-2005 à 19:30:46  profilanswer
 

Donc toutes les fonctions qui ressortent un nombre aléatoire se basent sur l'horloge ?!

n°972288
naceroth
Posté le 04-02-2005 à 19:33:28  profilanswer
 

tu connais quelques choses de moins statique ? (et présent dans un ordinateur) :)

n°972300
cerel
Posté le 04-02-2005 à 20:06:25  profilanswer
 

Il existe en mathematiques une fonction qui te sort un nombre pseudo-aleatoire.
Comme ce nom l'indique, ce nombre n'est pas totalement aleatoire, cependant il l'est presque. Cette fonction a ete implementee sur les ordinateurs. Le probleme avec cette fonction c'est qu'elle sort toujours les memes nombres "a la suite". En gros, meme si les nombres en eux sont aleatoires, on connait la suite des nombres.
Sur les ordinateurs, quand tu utilise la fonction pour retourner le nombre aleatoire, cette derniere utilise "le temps depuis que le pc est allume" comme parametre de la fonction.
Avec cette methode on est sur de ne "jamais" utiliser 2 fois  le meme parametre (tant que l'on a pas ralume le pc).
Mais helas, avec cette methode il y un incovenient.
On pourrait "deviner" le nombre qui va sortir. Ben oui, la fonction va retourner le meme nombre si l'on utilise le meme parametre.
 
L'astuce qu'on trouve les constructeurs des ordinateurs a ete de "decaler" la fonction.
Etant donne que la fonction est continue vers l'infini, il n'y a pas de probleme lors du decalage.
C'est ainsi que lorsque tu allume ton pc, ce dernier va "decaler" la fonction pseudo-aleatoire en fonction de la date de ce dernier (nbre de milisecondes depuis une date precise).  
On va decaler "le zero" de la fonction. Par consequent, tant que le pc est allume, la fonction va retourner le meme nombre si l'on utilise le meme parametre (parametre qui de toute facon ne peut pas etre "influence" par l'utilisateur). Mais une fois que le pc est redemarre, la fonction sera decalee. Par consequent si l'on tente d'utiliser un parametre de la derniere "session", cette fois ci le nombre sera different (a cause du decalage).
 
J'espere que mes explications n'ont pas ete trop obscures.

n°972355
judicael
Posté le 04-02-2005 à 22:23:10  profilanswer
 

Merci beaucoup ! c'est exactement ce que je voulais savoir. Je me doutais bien que c'était en fonction de la date ou qqch, mais je voulais savoir quel était, en théorie, le traitement.

n°972357
Hermes le ​Messager
Breton Quiétiste
Posté le 04-02-2005 à 22:26:47  profilanswer
 

judicael a écrit :

Merci beaucoup ! c'est exactement ce que je voulais savoir. Je me doutais bien que c'était en fonction de la date ou qqch, mais je voulais savoir quel était, en théorie, le traitement.


 
SI tu reprends ma proposition, tu devrais pas avoir de mauvaise surprise...  :D  

n°972377
judicael
Posté le 04-02-2005 à 22:59:04  profilanswer
 

Ma question n'était pas technique mais théorique. Voire philosophique. Parce que bon, comment faire surgir l'aléatoire ? Ca pose problème... sauf si on était des electrons, mais c'est une autre histoire.

n°972834
dwogsi
Défaillance cérébrale...
Posté le 05-02-2005 à 16:11:24  profilanswer
 

Moi j'ai toujours pensé que l'aléatoire n'existait pas puisquu si l'on utilise quelque chose qu'on apel aléatoir on se rend en fait compte qu'en utilisant les même conditions le chiffre qui ressort est toujours le même.
 
Exemple:
Tu lance un dès. Le chiffre 6 sort.
Tu relance le même dés de la même facon sur la même surface et au même endroit alors ca sera toujours le 6 qui sortira.  
 
L'aléatoire n'existe pas, c'est juste un chiffre qui est déterminé en fonction de toute une série de paramétres. La seule chose à faire c'est de faire rentrer pleins de paramétres comme la date et l'heure par exemple (cf. plus haut) et même peut être d'autres encore!
 
Nombre pseudo aléatoire définition:
Nombre résultant d’algorithmes de confusion de l’entrée dérivée de l’environnement de l’ordinateur, comme les coordonnées de la souris.
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Nombres aléatoires

 

Sujets relatifs
Site où ça code et décode des nombres....[HTML] Pages, images, et nombres de hits
Images aléatoiresimages aléatoires
Comment obtenir des nombres aléatoires mais seulement des entiers ?[C] gestion des nombres aléatoires
Algo de generation de nombres aleatoires ?Comment obtenir des nombres aleatoires?
nombres aléatoires[Java] Comment faire des nombres aléatoires ( URGENT ) !
Plus de sujets relatifs à : Nombres aléatoires


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR