Paso 5: 'True' aleatoriedad
Muchas funciones 'al azar' son en realidad todo pero aleatorio: desplazarse por una lista de resultados aritméticos basados en resultados anteriores. Esto significa que si el valor inicial es el mismo, el segundo, tercero y así sucesivamente valores también serán idénticos. Para resolver este problema en la actualidad se utiliza a menudo como punto de partida, nunca es el mismo.
Excepto está codificación para un microcontrolador. No tienen un reloj permanente. Si sean reajustados, empiezan a partir de los valores por defecto. Claro, podría utilizar el punto del tiempo de la pulsación como una fuente de datos aleatorios, pero hacer los temporizadores se debe ejecutar, y por lo tanto el consumo de energía es alta relativa.
En mi enfoque se utiliza un LED como fuente de datos aleatorios. LEDs son sensibles a la luz y generar, si unpowered, un pequeño voltaje. Lo bueno es que este voltaje es extremadamente sensible a los cambios de temperatura, radioactividad natural y otras fuentes de ruido. Las pequeñas variaciones se pueden detectar con el ADC del Attiny, dando por resultado un último bit casi al azar. Digo 'casi' porque el 1 o el 0 es poco preferida, sobre todo en periodos cortos de tiempo.
Incluso este leve no-aleatoriedad es sensible. Así sólo uso ruido 'al azar' como semilla (valor de inicio) de una función matemática 'al azar'. Yo he contado los acontecimientos individuales (ver lista arriba). El resultado más o menos coincide con la probabilidad de ajuste de 40% rojo, verde 40% y 20% amarillo.
Para aún más aleatoriedad podrían combinar el valor de la función de matemáticas y nuevos valores de ruido aleatorio. No sé cómo hacer esto correctamente, pero si lo haces, por favor dejar una sugerencia en los comentarios.