¿Cómo elegir un elemento aleatorio del conjunto {0,1}? ¿Puedo hacerlo probando el tráfico de red o la actividad del teclado?

Puede, pero es muy lento, y a menudo se necesitan números aleatorios en grandes cantidades y muy rápido.

Entonces hay dos problemas para resolver:

A. Cómo obtener un bit aleatorio de un evento externo
B. Cómo obtener bits aleatorios realmente rápido

A. Observemos algo así como la posición del mouse. Espere hasta que se mueva, luego compare la coordenada (x, y) de la NUEVA posición. Si x + y está INCLUSO, entonces devuelve 0; de lo contrario, devuelve 1.

Entonces, en el código de máquina, esto sería (x + y) Y 1
LDA MOUSEX
Y 1

(Tenga en cuenta que podríamos usar x AND 1)

(Si x = 0 o x = MAX, entonces ignore)

Esa es nuestra parte aleatoria.

B. En lugar de esperar hasta que necesitemos un bit aleatorio, cree un proceso en segundo plano para recopilar estos bits, de modo que tengamos un gran grupo para dibujar cuando sea necesario.

Estos procesos son entrópicos y se conocen como “demonios de recolección de entropía”