Sitio web de resúmenes de películas - E-sports - ¿Cuál es el principio de MC world seeds? ¿No son todos aleatorios? ¿Cómo puede una cadena de números describir una cantidad tan grande de datos?

¿Cuál es el principio de MC world seeds? ¿No son todos aleatorios? ¿Cómo puede una cadena de números describir una cantidad tan grande de datos?

El principio de las semillas de mapas es que la producción de mapas es en tiempo real, aleatoria y replicable.

En una misma versión de Minecraft, los mapas generados por la misma semilla son los mismos.

Detalles de producción del mapa:

seed: int seed = hashcode (xxxx); esta es la razón por la que los chinos también pueden hacer mapas.

La fórmula del gráfico de producción dinámica es.

map = fun_map(int semilla) = fun_sky(int semilla) fun_terrain(int semilla) fun_square(int semilla) fun_architecture(int semilla) fun_biology(int semilla) fun_minerals(int semilla).

Por ejemplo:

Generar función de mapeo: f(c)

Si f es una función definida, el valor de f(c) es el mismo que el de c El valor debe ser fijo.

c es la semilla, f(c) es el mapa generado.

La función aleatoria utilizada en la generación de mapas es, por supuesto, una función pseudoaleatoria.

¿Qué es una función pseudoaleatoria? Las computadoras realizan operaciones deterministas y no existe una verdadera aleatoriedad, lo que significa que desea exigir que la computadora tenga un generador de números aleatorios "independiente" (que dependa de entradas externas como acceso al disco, operaciones de teclado y mouse, etc.) para obtener entropía. Es teóricamente imposible generar números verdaderamente aleatorios. Muchas aplicaciones de programación que desean un efecto aleatorio utilizan una "función pseudoaleatoria", es decir, utilizan un algoritmo muy complejo para generar una serie de números aparentemente no relacionados pero distribuidos uniformemente (por ejemplo, 0,9024310185642406, 0,6038 06438 042. Siempre que el programa llama Esta función pseudoaleatoria toma el siguiente número de esta secuencia y lo devuelve al programa. Esto no es un problema de forma aislada, pero el problema es que si cierras el programa y lo reinicias, aún obtienes la serie original y. cada Cada vez que tomas un número aleatorio, obtienes el mismo número que la última vez, por ejemplo, sigue siendo "0.9438 0438 0438 20083. 000000000606 Si confías en esta secuencia para generar contenido del juego, entonces el resultado de cada uno". El juego será el mismo, lo que pierde el significado de aleatoriedad.

Para resolver este problema, solo podemos agregar algún tipo de "perturbación" a la "función pseudoaleatoria" para que los resultados. de cada ejecución son diferentes y generan diferentes "números pseudoaleatorios". La "semilla" es la forma más común de perturbación. La misma "semilla" genera la misma serie, y diferentes semillas generan series diferentes. La "semilla" de cada ejecución es la misma. ¿No es la misma? La forma más sencilla es utilizar la "hora del sistema" como semilla. La hora de la última ejecución y esta ejecución del mismo programa son definitivamente diferentes, lo que garantiza que la semilla. es diferente cada vez, si modifica manualmente la hora del sistema para que la hora del sistema sea exactamente la misma entre las dos ejecuciones, aún obtendrá los mismos resultados de operación, pero como juego, generalmente no es necesario considerar esto. /p>

Esta es la semilla del mapa de "Minecraft". Cómo funciona El mapa se genera básicamente mediante una función pseudoaleatoria, que no es diferente de otros juegos, pero sabemos que Minecraft es un juego geek. te da control sobre la semilla y te permite especificarla, de modo que cuando uses la misma semilla, todos los elementos supuestamente aleatorios del juego se volverán "destinados". No solo el terreno generado será exactamente el mismo, sino también lo que sea. flores, pasto, ganado y ovejas se dibujarán en todas partes si el jugador está jugando exactamente el mismo juego (esto es poco probable), entonces todo el juego es completamente equivalente a mostrar una película, todo está predeterminado. Además, en Minecraft, la generación de terreno, la generación de edificios y la generación de minerales están separadas.

Esto no interferirá con la formación de semillas específicas y terreno específico si se instalan modificaciones de generación de edificios o minerales.