Une histoire courte :
Génère une graine aléatoire en utilisant la microseconde actuelle du système.
Cette astuce est assez ancienne et est toujours fonctionnelle.
A l'exception de la force du facteur brut, où je peux déterminer chaque combinaison en "pariant" sur tous les nombres possibles et ce n'est pas le but de cette question, surtout quand la plupart des nombres aléatoires sont arrondis avant son utilisation.
Disons, par exemple, que je peux déterminer la semence utilisée en utilisant seulement 10 valeurs. Donc, connaissant la graine, je peux deviner la valeur suivante.
Si j'utilisais le seed=1, je pourrais obtenir la séquence suivante :
1, 2, 3, 4, 5, 6, 7, 8, 9... (et je déduis que la graine utilisée id 1 et la valeur suivante 10)
Mais, que se passera-t-il si l'on change l'envoi toutes les "nièmes" valeurs ? Changer la graine par les microsecondes actuelles est une astuce bon marché (c'est-à-dire qu'elle ne nécessite pas beaucoup de cycles CPU).
Donc la séquence est maintenant : (seed=1) 1, 2, 3, 4, 5, (seed=2), 7, 9, 11, 13... (15 ?)
Dans ce cas :
a) Je ne peux pas déduire quelle graine a été utilisée.
b) Ergo, je ne peux pas deviner la prochaine valeur.
c) La seule supposition que je puisse faire est de déduire que la prochaine graine pourrait être un nombre majeur.
Quoi qu'il en soit, la plupart des algorithmes modernes de génération aléatoire utilisent déjà cette astuce sous le capot.
Le fait est que, nous n'avons pas besoin d'un ordinateur quantique pour créer un "vrai" nombre aléatoire, l'imprécision de notre Quartz de notre ordinateur agit comme un générateur aléatoire, aussi l'efficacité aléatoire de notre CPU est aussi variable sans considérer que le CPU fait habituellement plusieurs tâches en même temps.