L'ordinateur ne peut pas créer d'aléatoire
- 23 réponses
- 12 participants
- 885 vues
- 10 followers
Will Zégal
j'ai retrouvé cette affirmation dans un sujet (sur le plug-ins d'EQ). C'est une affirmation qu'on retrouve souvent.
Cependant, je me rappelle avoir fait dans ma folle jeunesse un certain nombre de programmes qui faisaient appel à des tirages aléatoires.
De mémoire, à l'époque, lorsqu'on utilisait une commande de type random(), on obtenait des suites toujours identiques de nombres. Donc, pas un véritable tirage aléatoire, mais la production de nombres déjà prédéterminés.
Sauf qu'il était possible d'obtenir un véritable aléatoire en utilisant le facteur temps. En effet, le moment où la commande était déclenchée était, elle aléatoire. En prenant la mesure de temps la plus précise possible selon l'ordinateur et le language en jeu (de mémoire, on arrivait facilement à des micro-secondes sur un vieux coucou basique), et en utilisant ce nombre comme facteur de celui donné par la fonction random(), on obtenait bien un véritable tirage aléatoire, non ?
De fait, si l'ordinateur lui-même (son hardware) est bien incapable de générer de l'aléatoire, un programme peut tout à fait le faire.
Qu'est-ce qui clocherait dans mon raisonnement ?
[ Dernière édition du message le 20/01/2017 à 11:02:12 ]
Pictocube
Je suis pas du tout spécialiste mais pour moi il y a un truc qui cloche entre "générer de l'aléatoire" et le facteur aléatoire du moment ou tu appuie sur la commande.
Déjà, dans ta description, je me demande si ce serait pas plus juste que l'aléatoire dans la commande ne soit pas le moment où tu l'enclenche mais plutôt le fait que la commande s'enclenche dans un temps non définit et non maitrisable après que tu ais appuyé sur le bouton...
Mais au delà, si la production de nombre prédéterminés est la même quelque soit le moment du déclenchement, je ne vois pas trop où se situe la différence dans la création d'une liste aléatoire.
Quand on parle de séquenceur euclidien, on parle bien d'un logiciel qui fait de l'aléatoire, non ?
Tant qu'il y aura des couilles en or, il y aura des lames en acier
Anonyme
En prenant la mesure de temps la plus précise possible selon l'ordinateur et le language en jeu (de mémoire, on arrivait facilement à des micro-secondes sur un vieux coucou basique), et en utilisant ce nombre comme facteur de celui donné par la fonction random(), on obtenait bien un véritable tirage aléatoire, non ?
Non puisque tu dépends de trucs non aléatoires. Le résultat pourra être déterminé à l'avance (même si tu le rends difficile)
Will Zégal
Anonyme
Par extension je me suis toujours demandé si les actions humaines partaient d'une volonté propre aléatoire au niveau des neurones ou d'une interaction constante avec le milieu. Des fois je me pose ces questions, je me fais bcp chier au boulot...
Anonyme
Comment peux-tu déterminer à l'avance le chiffre qui sera pris sur la mesure du temps ?
Si tu sait quand tu prends ta mesure du temps sera prise, et que tu connais le temps actuel, je vois pas le problème.
Anonyme
Ca sort peut être un peu du sujet mais y'a une idée.
Will Zégal
Citation :Comment peux-tu déterminer à l'avance le chiffre qui sera pris sur la mesure du temps ?
Si tu sait quand tu prends ta mesure du temps sera prise, et que tu connais le temps actuel, je vois pas le problème.
Ben justement, tu ne sais pas. Non seulement l'utilisateur ne peut pas déclencher une action au millième de seconde près (encore moins au milliardième de seconde près), mais il ne peut pas savoir quelle durée va s'écouler entre l'action et le tirage.
Donc, si tu prends un chiffre qui vient d'une suite de nombre que l'utilisateur ne connaît pas et que tu le multiplies par, par exemple, le nombre de milliardièmes de secondes que donne l'horloge à un instant T, je ne vois pas comment le résultat peut être prévisible.
Tu peux même le leurrer encore plus en ne rendant pas le tirage dépendant d'une action (à part le lancement du programme).
Dr Pouet
En ce sens ce n'est pas aléatoire.
D'un autre coté, il suffit de très peu de choses pour "choisir au hasard" cette graine par exemple en multipliant l'adresse IP par le nombre de millisecondes depuis la mise sous tension), et éviter que ce soit toujours la même suite de nombres qui soit générée.
À l'inverse, choisir toujours la même graine, permet de toujours retrouver la même série de nombres, sans avoir besoin de stocker cette série (qui est d'ailleurs potentiellement infinie). C'est cette astuce qui est utilisée pour créer des mondes immenses mais fixes dans le temps et pour tous les joueurs dans des jeux comme Elite, No Man's Sky, Minecraft...
On en a parlé ici :
https://fr.audiofanzine.com/le-pub-des-gentlemen/forums/t.40346,jouez-vous-aux-jeux-video,post.8695254,p.4.html
C'est ce que duch désigne par "monde / environnement procédural". La "procédure" étant l'algorithme en question.
Article détaillé :
https://fr.wikipedia.org/wiki/Générateur_de_nombres_pseudo-aléatoires
Ces suites de nombres sont aussi celles que l'on reçoit des satellites GPS et qui nous permettent de déduire la distance qui nous sépare du satellite, et donc au final savoir où on est !
https://fr.wikipedia.org/wiki/Générateur_de_nombres_pseudo-aléatoires#Une_application_originale_:_le_GPS
No Man's Sky :
[ Dernière édition du message le 20/01/2017 à 16:31:02 ]
Pictocube
Pourquoi j'ai flagué ce tiopic
Tant qu'il y aura des couilles en or, il y aura des lames en acier
- < Liste des sujets
- Charte