Paso 3: Generación de números aleatorios
Resulta que es muy difícil crear verdadera aleatoriedad. Incluso puede ser imposible. Usando programas de matemáticas e informática para crear generadores de números aleatorios, crea una secuencia de números que no son verdaderamente aleatorios. Porque son matemáticas y de una fórmula conocida, son predecibles. Por lo tanto son generadores de números pseudo-random llamada (PRNGs). También resulta que hasta ahora nadie ha sido capaz de crear un algoritmo de número aleatorio que no repita. No importa cuán grande el programa o fórmula, el patrón eventualmente comienza a repetirse. No importa cómo duro intencionalmente tratamos de crear aleatoriedad, hay una tendencia subyacente hacia el orden en que se afirma a sí mismo.
Verdaderos generadores de números aleatorios (TRNGs), usar ruido electrónico o ambiental para generar el número y en la superficie parecen ser más al azar que pseudo generadores aleatorios. Sin embargo si sabíamos lo suficiente acerca de la mecánica de la generación de dichos sonidos, probablemente podremos predecir los números generan. Sólo porque no somos lo suficientemente inteligentes o lo suficientemente perspicaz para predecir algo no hace inherentemente impredecibles. Estos generadores también son notoriamente sensibles a su entorno y a menudo recoger patrones repetitivos del ambiente alrededor de ellos (hum AC, fluorescentes frecuencias, variaciones de temperatura, etc.).
Programa número Pseudo aleatorio
En el programa a continuación puede ver cómo utiliza el microcontrolador Picaxe para generar pseudo números aleatorios para jugar a las frecuencias en un rango de dos octavas. Dependiendo del número (b8) una nota es recogida y jugó por un corto tiempo (b6) y luego uno de los siete colores es recogido a la luz por un período corto de tiempo. Luego se repite el proceso.
TEXTO DEL PROGRAMA:
' Música aleatoria y generador de luz
símbolo de tiempo = b3
bucle:
alta 0
1 alta
alto 4
' readadc 1, b12
' depurar b12
al azar w0
al azar w1
tiempo = 1
B9 = b1 + b3
B8 = b9/7
pausa 57
' Pausa de C $0, $1A$ 1B
búsqueda b8, ($20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2A, 2B$, $00, $01, $02, $03, $04, $05, $06, $07, $08,
$09, $0A, 0B$, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19,
$1A), b6
tono 0, time,(b6)
pausa 31
búsqueda b8, ($25, $26, $27, $28, $29, $2A, $2B, $00, $01, $02, $03, $04, $05, $06, $07, $08, $09, $0A, 0B$, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $1A), b6
tono 0, time,(b6)
Pausa 21
búsqueda b8, ($28, $29, $2A, $2B, $00, $01, $02, $03, $04, $05, $06, $07, $08, $09, $0A, 0B$, $10, $11, $12, $13, $14, $15, $16, $17), b6
tono 0, time,(b6)
pausa 11
rama b8,(p6,p3,p1,p2,p6,p3,p2,p5,p4,p5,p7,p1,p8,p2,p1,p2,p6,p3,p2,p5,p4,p5,p7,p1)
Goto bucle
P1: ' pausas aleatorias
bajo 0 ' blanco
baja 1
4 bajo
pausa 41
Goto bucle
P2:
baja 1 ' verde
pausa 61
Goto bucle
P3:
4 bajo
pausa 65 ' azul
Goto bucle
P4:
bajo 0 ' amarillo
baja 1
pausa 53
Goto bucle
P5:
baja 1 ' azul verde
4 bajo
pausa 31
Goto bucle
P6:
bajo 0 ' violeta
4 bajo
pausa 57
P7:
bajo 0 ' rojo
pausa 67
P8:
Goto bucle