Una pregunta más precisa podría ser “¿Cómo puede una máquina determinista generar una secuencia de números aleatorios?”
Respuesta: No puede generar un número verdaderamente aleatorio.
determinismo [Aquí hay una explicación interesante de determinismo, no determinismo y aleatoriedad] significa que si le da a estas máquinas las mismas entradas, obtendrá exactamente la misma salida. Entonces, en una máquina (computadora) perfectamente determinista, nunca puede generar ninguna secuencia, es realmente aleatoria porque la computadora ejecutó algún algoritmo para darle la salida.
Puede escribir su propia función rand (), por ejemplo
- Como estudiante, ¿es inteligente crear mis propias bibliotecas de programación matemática?
- ¿Es la formación lineal la mejor producción de clasificación?
- ¿Cuáles son tus 10 idiomas favoritos?
- Si el punto (3, -4) divide la línea entre el eje x y el eje y en la relación 2: 3, ¿cuál será la ecuación lineal?
- ¿Cuál es la diferencia entre una cubierta abierta y una subcubierta finita en relación con la compacidad?
doble rand () {
retorno ((semilla * 5256 + 58/65536)% 2 << 31);
}
la calidad de esta función dependerá en gran medida de su valor de semilla y de lo difícil que sea predecir el valor de la semilla, por ejemplo, si su programa buscaminas usa la fecha y hora actual hasta milisegundos como semilla, puede registrar ese valor y calcular las posiciones de minas de antemano. Hacer que el juego no tenga sentido.
La única forma de obtener un número verdaderamente aleatorio (uno que no puede predecirse con la tecnología actual) es monitoreando eventos / variables que no pueden predecirse, como el ruido atmosférico, la desintegración radiactiva, el calor / ruido generado por el hardware de su computadora, transistores, diodos, etc. .
Piense en ello como una ecuación matemática donde una ecuación con demasiadas variables se puede decir como una función pseudoaleatoria, mientras que la ecuación con infinitas variables proporciona una función de generador de números verdaderamente aleatorios.
Echa un vistazo: ¿Cómo puede una computadora totalmente lógica generar un número aleatorio?