Se connecter
Se connecter

ou
Créer un compte

ou

L'ordinateur ne peut pas créer d'aléatoire

  • 23 réponses
  • 12 participants
  • 888 vues
  • 10 followers
Sujet de la discussion L'ordinateur ne peut pas créer d'aléatoire
Hello,

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 ]

Afficher le sujet de la discussion
11
Il y a effectivement des techniques pour choisir une graine vraiment aléatoire : temps lié à l'utilisateur comme évoqué, échantillonnage de bruit (par exemple sur une entrée audio non utilisée), bruit intrinsèque d'un transistor branché à l'envers, et même pour les applications de crypto il existe des bidules qui mesurent des désintégrations d'un élément radioactif (en application du principe d'incertitude)
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

[ Dernière édition du message le 20/01/2017 à 17:40:05 ]

12
:bravo:

On est quand même dans un aléatoire exogène à l'ordinateur. En tous cas, c'est amusant 1895488.gif
13
Il me semble qu'un opérateur de jeux (FDJ ?) avait communiqué là dessus à une certaine époque : une loterie instantanée qui se jouait dans les bars et où en quelques minutes, les joueurs pouvaient parier et connaitre leurs gains. Le générateur de nombres aléatoires était installé dans le bar et générait une suite de nombre à partir de l'environnement sonore (pression acoustique, timbre, fréquence ?) du lieu. J'avais lu un article comme quoi les paramètres était tellement complexes que le résultat était impossible à orévoir.

Incrédule sur tout, sceptique sur le reste

14
Interessant. Là aussi, on prend une source exogène pour permettre à l'ordinateur de générer du vrai aléatoire.
15
Citation de Will :
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.



Citation :
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 ]

16
Oui, d’ailleurs
Citation de Will :
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
Citation de Dr :
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 :-D

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

17
Oui "prévisible", tu as raison. Je me suis gouré de mot, mais c'est ce que je voulais dire.


Citation :
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 ]

18

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)

19
Citation :
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 :

10360100.jpg

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.
20

De nos jours elles sont mêmes pesées avant et après tirage par un huissier pour éviter toute tentative de triche