je crois que c'est une fonction qui donne un résultat random et qu'un utilisateur se plaint d'avoir un résultat aléatoire
(si tu n'avais réellement pas compris
sinon, je m'appelle Captain Obvious et c'est gratuit)
En fait les fonction "random" ne sont pas vraiment aléatoires...elles retournent toujours la même valeur si elles sont initialisées à partir de la même base... (c'est pourquoi le plus souvent la base utilisée est l'heure actuelle du système)
En informatique on parle de pseudo-aléatoire car la génération repose sur un algorithme (congruence linéaire et congruence additive pour les plus connus).
L'algorithme demande une ou plusieurs semences (seed en anglais). Utiliser la même semence donnera toujours la même séquence "aléatoire".
Certains langages demandent de générer les semences sous peine de fournir la même séquence. En VB par exemple la fonction Randomize fait cela. Mais si tu passes en paramètre une constante figée, la séquence sera toujours la même. Dans mes souvenirs lointains, j'utilisais Randomize(Timer) pour utiliser les semences en fonction de l'heure. En C, tu as srand, en C# tu initialises la semence dans le constructeur.
En fait, c'est faux :). Random ne change pas systématiquement. Généralement, ça se base sur le clock de l'horloge (ok, c'est pas obligatoire, mais c'est l'élément le "plus probant"). Si 2 appels consécutifs sont quasi-simultanée, selon la précision du Random, la même valeur sera renvoyée. C'est la grosse limite du random et également une des grosses limites dans l'informatique. C'est de plus en plus vrai avec des machines de plus en plus performantes.
caveres Lombric
eyhtern En réponse à caveres
(si tu n'avais réellement pas compris
sinon, je m'appelle Captain Obvious et c'est gratuit)
bibijul En réponse à eyhtern Jeune lombric
Psyghoria En réponse à bibijul Lombric Shaolin
PandaMan En réponse à Psyghoria LoMBriK addict !
L'algorithme demande une ou plusieurs semences (seed en anglais). Utiliser la même semence donnera toujours la même séquence "aléatoire".
Certains langages demandent de générer les semences sous peine de fournir la même séquence. En VB par exemple la fonction Randomize fait cela. Mais si tu passes en paramètre une constante figée, la séquence sera toujours la même. Dans mes souvenirs lointains, j'utilisais Randomize(Timer) pour utiliser les semences en fonction de l'heure. En C, tu as srand, en C# tu initialises la semence dans le constructeur.
GuruMeditation En réponse à Psyghoria Asticot
Henry_Hill En réponse à caveres Ver macht addikkkt
Chaque_Jirac Mervisseau