¿Qué es "aleatorio"? Enseñarle a distinguir entre "pseudoaleatorio" y "verdaderamente aleatorio"
?Hace mucho tiempo hubo un chiste: un hombre que estaba gravemente enfermo decidió operarse. Antes de la operación, le preguntó al médico: "¿Cuál es la tasa de éxito de esta operación?" El médico le respondió: "Sólo el 1% tuvo pánico, pero el médico dijo: "Está bien, he tratado a 99 personas". Antes que tú, es personal”.
Esta es una broma que se burla de aquellos que no entienden la “probabilidad”, pero marca la diferencia entre la “verdadera aleatoriedad” y la “pseudoaleatoriedad”.
A finales de abril, escribí un artículo "¿Confías en la habilidad o en la suerte para jugar?" 》, que mencionaba el concepto de “pseudoaleatorio”. Debido a limitaciones de espacio en ese momento, el concepto de "pseudoaleatorio" no se explicó en detalle. No hace mucho, en la última actualización de Dota 2, que ha llamado mucho la atención debido al Torneo Internacional por Invitación, apareció una actualización de este tipo: "Los efectos negativos de los fallos y los efectos de los ataques cuesta abajo ahora se activan de forma pseudoaleatoria. "
Entonces, ¿qué es exactamente "pseudoaleatorio"? ¿Y cuál es el concepto de “aleatoriedad verdadera” correspondiente al de “pseudoaleatorio”?
Generador de números pseudoaleatorios (PRNG para abreviar) es un término para computadoras; por supuesto, también se puede llamar "algoritmo de números pseudoaleatorios", solo por conveniencia y "algoritmo de números pseudoaleatorios". en el juego se distingue el "número pseudoaleatorio", que en este artículo se denomina uniformemente "algoritmo de números pseudoaleatorios".
Como todos sabemos, los programas de computadora se componen de innumerables estados "0" y "1". Si un estado no es "0", debe ser "1", que es bastante blanco y negro. el sabor.
Por tanto, en un programa de ordenador no existen números "inciertos", sólo ciertos "1" y "0". Según esta característica, las computadoras no pueden generar "números aleatorios verdaderos (inciertos)".
Entonces, ¿qué debes hacer cuando necesitas generar o utilizar números aleatorios en una computadora? Por lo general, se utiliza una computadora para capturar algunos valores y luego estos valores se ingresan en un algoritmo complejo (los algoritmos más utilizados son el método de congruencia y el algoritmo de rotación de Mersenne. Los lectores interesados pueden consultarlo ellos mismos, y no entraré en detalles aquí). Entre ellos, a través de una serie de operaciones se obtiene un número, que comúnmente se conoce como número pseudoaleatorio.
Mientras el valor de entrada inicial (valor inicial) no cambie, el valor de salida será el mismo valor, lo que demuestra que este número no es aleatorio, simplemente parece aleatorio.
En otras palabras, siempre que el número aleatorio se genere mediante un algoritmo determinista, es un número pseudoaleatorio.
Entonces, la próxima vez que estés chateando con un amigo y menciones números aleatorios verdaderos y números pseudoaleatorios, si alguien interviene: "Las computadoras sólo pueden generar números pseudoaleatorios, por lo que no existe tal cosa como verdadera aleatoriedad", entonces puedes decir con seguridad que es un "jugador de la nube".
Lo que solemos llamar aleatoriedad verdadera, también conocida como “Distribución Aleatoria Verdadera”, es el tipo de “aleatorio” en el sentido general del que solemos hablar.
En la aleatoriedad verdadera, cada evento es independiente entre sí, obedece a una distribución aleatoria verdadera y no cambia por la ocurrencia de otros eventos. Por ejemplo, para atraer usuarios, un determinado juego tiene un sistema de sorteo de cartas aleatorio: cada vez que se saca una carta, hay un 1% de posibilidades de sacar una carta SSR, y esta probabilidad obedece a una distribución aleatoria verdadera.
Volviendo al chiste de "matar al 99" que contábamos al principio: Podemos ver la irracionalidad de este chiste de un vistazo. Pero en el juego de cartas, nuestro cerebro pierde instantáneamente la cordura. Un número considerable de jugadores piensa: ¡Si robo 100 veces seguidas, siempre podré robar esta carta!
De hecho, la probabilidad de no poder robar el 1% de las cartas SSR después de robar 100 veces es (1-0,01)^100=36,6%, que es incluso un poco más de 1/3. Aumentar el número de sorteos consecutivos a 300 todavía tiene un 4,9% de posibilidades.
En otras palabras, suponiendo que hay 10.000 jugadores que empatan 100 veces seguidas, alrededor de 3.660 jugadores no podrán empatar este SSR, si 10.000 jugadores empatan 300 veces seguidas, todavía lo habrá; Hay alrededor de 490 jugadores que no pueden dibujarlo sin este SSR; se puede decir que esto es un golpe devastador para la experiencia de juego del jugador.
Aunque la aleatoriedad pura es matemáticamente inocente y está clara y clara en el código, si el jugador no puede sacar la carta, no recordará los libros de texto de matemáticas de la escuela media y secundaria, sino que primero Dudo de si la probabilidad ha sido alterada por la planificación y la operación, y si hay una transacción PY sucia detrás de esto...
Por supuesto, este no es solo el caso en el sistema de extracción de tarjetas. En algunos juegos altamente competitivos (como War3 y Dota2; League of Legends ha eliminado casi por completo el sistema aleatorio y no está incluido en esta lista), varios eventos "afortunados" consecutivos afectan en gran medida la competitividad y el disfrute del juego.
Por ejemplo, la habilidad "Regreso al pasado" de Masked Void, el héroe probabilístico más famoso de Dota: le da a Masked Void un 25% de posibilidades de evitar completamente un daño. Limitada por el motor War3, esta habilidad utiliza una verdadera probabilidad aleatoria. En determinadas circunstancias extremas (generalmente vistas en los carretes destacados), Masked Void puede mantener un volumen de sangre muy bajo y soportar múltiples heridas sin morir, y finalmente mata al oponente. Este tipo de sistema brinda una experiencia de juego extremadamente pobre al enemigo, por lo que también ha entrado en el "ámbito de rectificación" de los diseñadores.
Para evitar la pérdida de jugadores causada por una experiencia de juego extremadamente pobre, los diseñadores propusieron el concepto de "pseudo-aleatorio": entre eventos aleatorios inciertos, se utilizan una serie de algoritmos para hacer que los eventos aleatorios sean uniformes. Distribuido entre múltiples eventos para reducir o eliminar la ocurrencia de situaciones extremas tanto como sea posible para mejorar la experiencia de juego del jugador.
Con los esfuerzos de los diseñadores, surgió "pseudoaleatorio". El significado de pseudoaleatorio aquí es diferente del algoritmo de números pseudoaleatorios (PRNG) anterior.
Hay muchas formas de crear "pseudoaleatorio". En juegos como War3 y Dota2, la "distribución pseudoaleatoria" (pseudodistribución aleatoria, conocida como PRD) se usa comúnmente para lidiar con la probabilidad.
Tomemos como ejemplo la habilidad de golpe crítico más poderosa "Blessed Release" en Dota2: Phantom Assassin tiene un 15% de probabilidad de causar un 200%/325%/450% de daño de golpe crítico. Según el mecanismo PRD, los ataques de Phantom Assassin en realidad no tienen una tasa de golpe crítico del 15% por cada golpe de espada.
Según la fórmula P(N)=N*C del mecanismo PRD, el valor C de la probabilidad del 15% es 3.22%, es decir, la probabilidad de golpe crítico del primer ataque del Phantom Assassin es 3.22% si el primer ataque Si no hay golpe crítico con una espada, la tasa de golpe crítico de la segunda espada aumentará a 2 veces, que es 6.44% si aún no hay golpe crítico, la tasa de golpe crítico aumentará; a 3 veces, que es 9,66%, y así sucesivamente.
Si continúas calculando, puedes obtener que la probabilidad de golpe crítico alcanzará el 100% en el cuchillo 32, el número más probable de golpes críticos es el cuchillo 6, el número promedio de cuchillos activados es 6,67 , etc...
De manera similar, cuando los golpes críticos se activan continuamente, la posibilidad de un golpe crítico con el siguiente cuchillo se reducirá. El mecanismo RPD reduce la probabilidad de activar o no activar continuamente habilidades en juegos competitivos, evita la interferencia excesiva de la suerte en los resultados de la batalla y mejora en gran medida la experiencia de juego del jugador, pero no afecta la retroalimentación positiva de estos eventos aleatorios: el " Golpéame cinco" en la final de TI6 "Me desmayé tres veces", ¡pero eso emocionó a la gente de todo el mundo!
Además de la distribución pseudoaleatoria RPD, existen dos pseudoaleatorios comunes: el algoritmo de barajado y el aleatorio combinatorio.
El uso más común del algoritmo de reproducción aleatoria es en la "reproducción aleatoria" de los principales reproductores de música. Cuando se reproduce aleatoriamente, si se utiliza la verdadera aleatoriedad, una canción no se reproducirá de todos modos, o la misma canción se reproducirá varias veces seguidas (los lectores interesados pueden calcular estas probabilidades). Para resolver este problema, la solución adoptada por el reproductor es un algoritmo de reproducción aleatoria: mezcla aleatoriamente una matriz que contiene todas las canciones como si fuera una reproducción aleatoria y luego reproduce esta matriz desordenada en secuencia.
En cuanto a la combinación de aleatoriedad, se trata de una práctica muy utilizada en diversos juegos: durante la lotería se realizan dos o más juicios, uno no es aleatorio y el resto de juicios sí lo son. Por ejemplo, es seguro que robarás un SSR al robar cartas para el
No parece tan fácil distinguir entre "aleatorio verdadero" y "pseudoaleatorio" en una gran cantidad de datos. Entonces déjame presentarte dos ejemplos que te ayudarán a comprender mejor qué son "aleatorio verdadero" y "pseudoaleatorio":
Aleatorio verdadero: un día, Xiao Ming realizó una lotería en su clase Actividad . Hay 40 estudiantes en esta clase, así que, para ser justos, cada estudiante tiene una probabilidad de 1/40 de ganar. El maestro preparó 40 cajas de papel idénticas, cada una con 40 tiras de papel y 1 nota es una nota ganadora. De esta manera, cada estudiante tiene una probabilidad de 1/40 de ganar, pero el hecho de que cada estudiante gane no se ve afectado por los demás estudiantes. En casos extremos, 40 estudiantes de esta clase pueden ganar la lotería. Esto es realmente aleatorio.
Pseudoaleatorio: Se realizó una lotería en la clase de Xiao Ming. Para ser justos, la maestra preparó una caja de papel con 40 hojas dentro, y solo una fue la hoja ganadora. De esta manera, cada estudiante tiene una probabilidad de 1/40 de ganar, pero es obvio que sólo un estudiante de esta clase puede ganar. Después de que un estudiante gane la lotería, la probabilidad de ganar para todos los estudiantes restantes se reducirá a 0. Esto es pseudoaleatorio.