Version complète: sur le forum Webmaster Hub : rand
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Berberber
normalement oui.
Dash
absolument pas.
Il s'agit de probabilites, pas de certitude smile.gif
La probabilite que le resultat soit 0 est de 50%. Cela ne signifie pas qu'une fois sur deux on aura effectivement 0
Eclipsis
J'ai déjà fait un test sur un 1000 rand() et ça m'a donné 494 '0' et 506 '1'... Je suis sûr que si je refaisais le test le résultat serait différent, mais assez proche de 500/500.
Globalement, on peut dire que la probabilité veut que ce soit 50%.
Donc oui! smile.gif
Bug
CITATION
Globalement, on peut dire que la probabilité veut que ce soit 50%


Je suis d'accord avec ça, mais comment fonctionne la fonction rand() ?
Il y a un algorithme derrière ? Et si c'est le cas, peut on réellement parler de choix aléatoire ?
Est-ce en fonction du cycle d'horloge (ce qui correspondrait à un pile ou face) ?
Mais dans ce cas, comment choisir un chiffre entre 0 et 9 ?
C'est ce genre de détail qui m'interesse moi dans cette question.
Je sais, je suis un peu IMSTP6.gif , et je ne fais rien pour me soigner smile.gif
MarvinLeRouge
CITATION(Bug @ dimanche 23 janvier 2005, 23h16)
...Il y a un algorithme derrière ? Et si c'est le cas, peut on réellement parler de choix aléatoire ?
Est-ce en fonction du cycle d'horloge (ce qui correspondrait à un pile ou face) ?
...


Générateur de nombres pseudo-aléatoires : il se base sur un algorithme qui rend statistiquement des résultats suffisament équilibrés pour qu'on puisse les considérer comme aléatoires sur un grand nombre de tirages.
Quant à savoir quel algo est utilisé par rand, je suppose que c'est basé sur l'horloge, mais le meilleur moyen de le savoir serait probablement de demander aux auteurs de php tongue.gif
NB : Je n'ai pas trouvé de référence à l'algo en question sur le manuel
Dash
rand(), pseudo-aleatoire,
1°/ n'est pas equiprobable : il n'y a aucune raison d'avoir 50% de 0 et 50% de 1
2°/ n'a rien d'original par rapport aux autres langages de programmation : c/c++, java, etc...
3°/ est donc basee sur une suite dite chaotique, comme dans les autres langages. PHP n'a rien invente.
4°/ n'est pas influencee par le temps : vous obtiendez les memes resultats en commencant vos tests a differents moments.

srand() permet de varier la suite utilisee. Et une utilisation de srand() en fonction du temps permet d'obtenir des resultats plus aleatoires. C'est a cet endroit que le temps intervient smile.gif
MarvinLeRouge
Oups blush.gif Aurais-je dit une bêtise ?
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.