L'ordinateur ne peut pas créer d'aléatoire
- 23 réponses
- 12 participants
- 1 013 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

Jimbass

https://en.wikipedia.org/wiki/Hardware_random_number_generator
https://www.fourmilab.ch/hotbits/hardware3.html
Le truc le plus drôle c'est le générateur de nombres aléatoires basé sur une lampe psychédélique et une webcam :
https://en.wikipedia.org/wiki/Lavarand
Musikmesser 2013 - Bullshit Gourous - Tocxic Instruments - festivals Foud'Rock, Metal Sphère et la Tour met les Watts
[ Dernière édition du message le 20/01/2017 à 17:40:05 ]

Will Zégal


On est quand même dans un aléatoire exogène à l'ordinateur. En tous cas, c'est amusant


dana12

Incrédule sur tout, sceptique sur le reste

Will Zégal


Dr Pouet

Interessant. Là aussi, on prend une source exogène pour permettre à l'ordinateur de générer du vrai aléatoire.
Ben il n'y a pas trop le choix.
J'avais lu un article comme quoi les paramètres était tellement complexes que le résultat était impossible à prévoir
Ouais enfin ça c'est super facile à faire, et depuis que les micro-ordinateurs existent :
- tu demandes à l'utilisateur d'appuyer sur une touche
- pendant ce temps tu fais une boucle qui tire des nombres au hasard
Comme ça va extrêmement vite, il est impossible à un être humain d'obtenir des résultats déterministes.
Et il y a mille autres solutions (heure courante, adresse IP, numéro du process, nom de l'utilisateur...)
Comme dit Will : n'importe quoi d'exogène.
[ Dernière édition du message le 21/01/2017 à 14:55:46 ]

Anonyme

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.
En fait c’est exactement l’inverse.
Je pense que la question du premier post serait en fait « quelle qualité d’aléatoire peut-on obtenir avec l’horloge pour seule information extérieure ».
Edit : Ah
Comme ça va extrêmement vite, il est impossible à un être humain d'obtenir des résultats déterministes.
Prévisibles plutôt que déterministes du coup ? Parce que fondamentalement, la notion d’aléatoire dérive un peu vers la philosophie, c’est pour ça que je pense qu’il faudrait reformuler la question en terme de quantité d’entropie, de l’importance des défauts de la distribution des nombres selon l’usage qu’on en fait et de la faisabilité d’une méthode de prédiction… je répondrai pas par contre

[ Dernière édition du message le 21/01/2017 à 15:23:36 ]

Dr Pouet

Je pense que la question du premier post serait en fait « quelle qualité d’aléatoire peut-on obtenir avec l’horloge pour seule information extérieure ».
Comme tu le sous-entend, avec des circuits synchrones (= pilotés pas une horloge) et numériques, c'est un peu mort, puisque justement tout est fait pour éviter des résultats aléatoires !
Par contre avec un VCO bien analogique déjà...
[ Dernière édition du message le 21/01/2017 à 17:25:18 ]

L.Fox

Une question que vous oubliez de poser est : "Est-ce que le hasard existe vraiment ?"
Par exemple lors d'un lancé de dés, vous pensez avoir à faire au pour hasard, mais ce n'est qu'une succesion de paramètres physique. En confiant un dés à une machine très précise, avec des paramètres connus (surface, mase ...) on pourrait choisir de lancer un dés et le faire toujours sur la même face.
La seul inconnue dans le lancé de dès est notre main qui n'est pas assez précise pour être controler ainsi.
Une amie travaillant dans un casino m'expliquait qu'avec l'expérience sur certaines roulettes le croupier arrivait à placer à peu près la bille dans le secteur qu'il voulait.
Dans le cadre de ta question Will le hasard (et donc l'aléatoire) n'existe clairement pas. Quand je dévellope sur Arduino pour "générer" la graine du hasard (randomSeed) j'utilise une entrée analogique vide (qui va recevoir une sorte de bruit)

Dr Pouet

Une amie travaillant dans un casino m'expliquait qu'avec l'expérience sur certaines roulettes le croupier arrivait à placer à peu près la bille dans le secteur qu'il voulait.
Et pour les tirages du loto faits avec des boules :

La peinture des nombres à deux chiffres est moins dense que celle des nombres à un chiffre. Enfin ça c'était dans les années 80, maintenant il y a un fond toujours de la même taille autour des nombres.

L.Fox


Anonyme

Je pèse des boules pour garantir l'égalité des chances.

Anonyme



antart

Si ça intéresse quelqu'un il s'appelle Robert Lisek et voici son site http://fundamental.art.pl/
et l'interview d'electopixel http://apo33.org/electropixel/index.php/2016/08/22/interview-robert-b-lisek-en/ ou il parle de "randomness" !

je flag au passage !
[ Dernière édition du message le 23/01/2017 à 16:06:57 ]

Will Zégal


- < Liste des sujets
- Charte