Votre tâche consiste à improviser un générateur de nombre aléatoire de matériel avec le matériel que vous possédez.
Défi
Ecrivez un programme avec les propriétés suivantes:
- Il imprime soit
0
ou1
(et rien d'autre). - La sortie dépend d'un processus physique et pas seulement de l'état interne de l'ordinateur.
- Il n'y a pas de relation entre les sorties des analyses suivantes (à une minute d'intervalle).
- La sortie n'est pas prévisible avec aucun effort réaliste.
- La probabilité que la sortie soit
0
comprise entre 0,2 et 0,8. - Il s'exécute en moins d'une minute avec une probabilité raisonnablement élevée.
Vous devez expliquer pourquoi votre programme possède ces propriétés, si ce n’est pas évident.
Clarifications et restrictions
Ce qui suit peut sembler énormément de restrictions pour un concours de popularité, mais en fin de compte, tout est fait pour que le programme reste dans l'esprit de la question, fonctionne un peu et pour éviter les solutions qui sont populaires parce qu'elles sont excessives mais ultimement plutôt ennuyant.
- L’heure du système ne compte pas comme un processus physique.
- Vous pouvez utiliser n'importe quel matériel grand public que vous aimez, des lecteurs de disque floopy de 8 pouces au lance- roquettes USB en passant par les écouteurs - sauf s'il est destiné à la génération de nombres aléatoires. Une pièce de matériel est de qualité grand public, si elle est produite en série et coûte moins de 1000 $ / € / £ / £, vous ne pouvez donc pas utiliser les radiotélescopes, le CERN, les IRM ou votre détecteur de particules construit à la maison.
- Vous pouvez uniquement émettre les hypothèses de base sur l'état et l'alignement du matériel, par exemple être allumé (s'il dispose d'un commutateur d'alimentation), être correctement installé et fonctionnel. Par exemple, vous pouvez supposer qu'un lecteur de CD est généralement capable de lire un disque et ne pas être bloqué, mais vous ne pouvez pas supposer qu'il est ouvert ou fermé ou qu'il contient un disque. Dans un autre exemple, vous ne pouvez pas supposer que deux composants matériels sont alignés pour permettre une interaction spéciale, mais vous pouvez également supposer qu'ils se trouvent dans la même pièce.
- Vous pouvez laisser le matériel dans l'état de votre choix, à moins que vous ne le cassiez.
- Vous pouvez et devez supposer que le matériel se trouve dans un environnement naturel, mais rien de plus. Par exemple, vous pouvez supposer que le matériel n'est pas placé dans un réservoir d'hélium liquide ni dans une pièce extrêmement insonorisée et insonorisée, ni dans un espace. Cependant, vous ne pouvez pas présumer de la présence de sources sonores ou lumineuses, à l'exception de celles qui ne peuvent être évitées qu'avec des efforts radicaux.
- Votre programme doit être exécuté sur un ordinateur de bureau standard avec un système d'exploitation non ésotérique de votre choix. Vous pouvez utiliser tout logiciel non spécialement conçu pour la génération de nombres aléatoires.
- Vous ne pouvez pas supposer un accès Internet.
- Vous ne pouvez pas supposer que les humains sont présents ni absents, mais vous pouvez supposer que personne ne gêne intentionnellement votre programme, par exemple, en arrêtant manuellement un ventilateur ou en exécutant un programme qui ne fait rien, mais éteint le microphone aussi souvent que possible.
- Vous ne pouvez faire que les hypothèses les plus élémentaires sur les paramètres du logiciel. Par exemple, vous pouvez supposer que les pilotes sont installés et activés, mais vous devez être prêt pour que le son soit mis en sourdine.
- Vous pouvez laisser les paramètres du logiciel dans l'état de votre choix.
Prime
Une prime spéciale a été attribuée à une solution particulièrement courte. C'était plutôt par nombre d'instructions et similaire que par caractères. Les gagnants étaient (à égalité selon mes critères):
- Cette réponse de Franki.
- Cette réponse de Tejas Kale.
Je n'ai pu attribuer qu'une seule réponse et celle de Tejas Kale a été tirée au sort.