Su tarea es improvisar un generador de números aleatorios de hardware con cualquier hardware que tenga por ahí.
Desafío
Escriba un programa con las siguientes propiedades:
- Imprime ya sea
0
o1
(y nada más). - La salida depende de un proceso físico y no solo del estado interno de la computadora.
- No hay relación entre las salidas de ejecuciones posteriores (con un minuto de diferencia).
- El resultado no es predecible con ningún esfuerzo realista.
- La probabilidad de que la salida
0
sea entre 0.2 y 0.8. - Se ejecuta en menos de un minuto con una probabilidad razonablemente alta.
Debe explicar por qué su programa tiene estas propiedades, si no es obvio.
Aclaraciones y restricciones
Lo siguiente puede parecer una gran cantidad de restricciones para un concurso de popularidad, pero en última instancia, todo es para garantizar que el programa se mantenga dentro del espíritu de la pregunta, de alguna manera funcione y para evitar soluciones que son populares debido a una exageración total pero que son en última instancia bastante aburrido
- El tiempo del sistema no cuenta como un proceso físico.
- Puede usar cualquier hardware de calidad de consumidor que desee, desde unidades de disco floopy de 8 pulgadas hasta un lanzador de cohetes USB y auriculares, a menos que esté destinado a la generación de números aleatorios. Una pieza de hardware es de calidad para el consumidor, si se produce en masa y cuesta menos de 1000 $ / € / £, por lo que no puede usar radiotelescopios, el CERN, MRI o su detector de partículas casero.
- Solo puede hacer las suposiciones más básicas sobre el estado y la alineación del hardware, como estar encendido (si tiene un interruptor de alimentación) y estar instalado y funcionando correctamente. Por ejemplo, puede suponer que una unidad de CD es generalmente capaz de leer un disco y no estar atascada, pero no puede suponer que esté abierta o cerrada o que contenga un disco. En otro ejemplo, no puede suponer que dos piezas de hardware estén alineadas para permitir una interacción especial, pero puede suponer que están en la misma habitación.
- Puede dejar el hardware en el estado que desee, a menos que lo rompa.
- Puede y debe asumir que el hardware está en un entorno natural, pero nada más. Por ejemplo, puede suponer que el hardware no está colocado en un tanque de helio líquido ni en una habitación extremadamente insonorizada ni a prueba de luz ni en el espacio. Sin embargo, no puede suponer que haya fuentes de sonido y luz, excepto aquellas que solo pueden evitarse con esfuerzos radicales.
- Su programa debe ejecutarse en una computadora de escritorio estándar con un sistema operativo no esotérico de su elección. Puede emplear cualquier software que no esté específicamente diseñado para la generación de números aleatorios.
- No puede asumir el acceso a Internet.
- No puede suponer que los humanos estén presentes o ausentes, pero puede suponer que nadie interfiere intencionalmente con su programa, por ejemplo, deteniendo manualmente un ventilador o ejecutando un programa que no hace nada más que apagar el micrófono con la mayor frecuencia posible.
- Solo puede hacer las suposiciones más básicas sobre la configuración del software. Por ejemplo, puede asumir que los controladores están instalados y activados, pero debe estar preparado para silenciar el sonido.
- Puede dejar la configuración del software en el estado que desee.
Prima
Se otorgó una recompensa especial a una solución particularmente corta. Esto fue más bien por números de instrucciones y similares que por caracteres. Los ganadores fueron (empatados según mi criterio):
- Esta respuesta de Franki.
- Esta respuesta de Tejas Kale.
Solo pude otorgar una respuesta y la respuesta de Tejas Kale ganó por sorteo.