Generación pseudoaleatoria de números

De WikiDex
Ir a la navegaciónIr a la búsqueda

Un generador de números pseudoaleatorios (Pseudorandom number generator en inglés) abreviado RNG por sus siglas en inglés, es un dispositivo electrónico, o el intento del software, en crear un número aleatorio. Así como el número que da un dado al lanzarlo no es "al azar" (puesto que está determinado por factores tales como la fuerza, el ángulo del tiro o la fricción), los ordenadores no pueden generar números verdaderamente "al azar". Con el fin de generar eventos aleatorios en videojuegos y otras formas de software, las máquinas deben recopilar los datos que puedan (tales como la fecha, la hora, o lo último que has hecho) y realizar operaciones aritméticas con ellos para generar un número "pseudo-aleatorio", pero hay infinitas maneras de lograr estos números. El grado de aleatoriedad depende de la incapacidad del usuario para predecir el siguiente resultado del algoritmo.

Mecánica[editar código | editar]

En primer lugar, el generador debe tener una semilla (seed en inglés), un número que sirva como "base". Este número es generalmente la fecha y hora de la primera vez en la que es usado este algoritmo, durante el uso del dispositivo o una sesión activa del software (por lo que al reiniciar el dispositivo o el programa en cuestión, la semilla cambia de valor). Las semillas también suelen derivar de las acciones del usuario dentro del programa, ya que es altamente improbable repetir exactamente lo mismo más de una vez.

Este número es "añadido" a un complejo algoritmo, y este resultado se adapta de acuerdo con los valores necesario. El resultado se convierte entonces en la semilla para cualquier uso posterior del generador de aleatoriedad. Es por lo tanto que la naturaleza del generador es un algoritmo recursivo.

En los videojuegos[editar código | editar]

Generador de números aleatorios líneales congruenciales (LCRNG)[editar código | editar]

En la tercera y cuarta generación, los videojuegos utilizan 32 bit en el LCRNG.

El juego crea una semilla (un número entre 0 y 0xFFFFFFFF, o el resultado de una llamada previa a la ecuación).

Resultado = [(0x41C64E6D * Semilla) + 0x6073]

Este algoritmo se utiliza para lo siguiente:

En la quinta y sexta generación los videojuegos, por el contrario, utilizan 64 bit en el LCRNG, y de la siguiente manera:

Resultado = [(0x5D588B656C078965 * Semilla) + 0x0000000000269EC3]

Generador de números aleatorios alternativo (ARNG)[editar código | editar]

Los videojuegos de la cuarta generación también utilizan un algoritmo diferente para alternar, volver a generar, o modificar un valor previamente obtenido aleatoriamente. El algoritmo funciona de la misma manera, pero la ecuación cambia a:

Resultado = [(0x6C078965 * Semilla) + 0 × 1]

Este algoritmo se utiliza para lo siguiente:

Mersenne Twister (MTRNG)[editar código | editar]

Hallado a partir de la cuarta generación , el Mersenne Twister es otro tipo de generador de números aleatorios que produce 624 números aleatorios a la vez. Estos números aleatorios se almacenan y se utilizan cuando sea necesario. Una vez utilizados los 624 números, se generará otro conjunto.

Este algoritmo se utiliza para lo siguiente:

Abuso de RNG[editar código | editar]

El abuso de RNG (en inglés RNG abuse), también conocido como manipulación RNG, es el procedimiento por el que son estudiados los generadores de números pseudoaleatorios, en los principales videojuegos de la serie, para obtener el Pokémon deseado mediante la predicción de los valores aleatorios. Es comúnmente usado para obtener Pokémon variocolores, con altos IVs, con un conjunto específico de IVs que otorgan un poder oculto en particular (respecto al tipo y poder), o Pokémon con ciertas naturalezas.

En los videojuegos donde la semilla inicial (en el arranque) es predecible, los números "aleatorios" posteriores son predecibles también. La semilla inicial de Pokémon Esmeralda es siempre 0, y en los videojuegos de la cuarta generación se utilizan la fecha, la hora y el tiempo que se tarda entre el inicio del videojuego y el momento en el que es presionando "Continuar". En la quinta generación se utilizan la fecha, la hora, las teclas actualmente presionadas y otros datos de entropía para crear semillas antes de que aparezca el logotipo de Nintendo.

El generador de números aleatorios se utiliza para determinar el valor de personalidad (PID) de un Pokémon y los IVs, cuando se encuentra o se recibe como un huevo o un regalo. Mediante la búsqueda de semillas que satisfacen las características requeridas, el jugador puede llegar a la semilla necesaria para generar las características que desee para algún Pokémon. Hay varios métodos utilizados para influir en las características de un huevo o de un Pokémon salvaje.

En la tercera y cuarta generación, hay algunas limitaciones. Como la aparición de un Pokémon variocolor depende del ID secreto del jugador, los Pokémon variocolores sólo pueden obtener ciertos IVs. En la quinta generación, esto ya no se cumple, ya que los IVs y el PID se determinan a partir de dos generadores de números aleatorios diferentes.

Entre los jugadores de Pokémon, el abuso de RNG tiene mucha controversia. Los defensores señalan que el abuso de RNG no requiere un dispositivo de otro fabricante, y que el Pokémon que se obtiene a través del mismo es obtenible a través del videojuego normal. Además, muchos de los Pokémon que se obtienen a través de este método se han utilizado en torneos oficiales. También señalan que el abuso de RNG es muy complicado, y no es tan simple como escribir un código de trucos (GameShark o Action Replay), por lo que sólo los más expertos lo terminan consiguiendo. Sin embargo, algunos jugadores creen que esto es hacer trampa, dado a que la acción de "fijar" las características de un Pokémon es similar al uso de un dispositivo de cheating. Los opositores del abuso de RNG opinan que otorga una ventaja injusta, y sin embargo los partidarios dicen que con RNG todo el mundo puede tener mejores estadísticas, y por lo tanto nadie va a tener ventaja injusta por capturar un Pokémon mejor que los demás.

Abuso de gran encanto[editar código | editar]

Vídeo demostrando el abuso de gran encanto.

En todos los videojuegos de la cuarta generación existe una vulnerabilidad para encontrar Pokémon variocolores con un 21'34% usando la habilidad gran encanto de un Pokémon en el primer puesto del equipo, teniendo además una determinada naturaleza según el caso. Los ID de entrenador y el ID secreto deben ser iguales, o al menos, compatibles1 y si es así, se podrán hallar Pokémon variocolor.

La aparición de los Pokémon es totalmente legítima al no usar aparatos externos que fuercen la aparición de los Pokémon variocolor, ya sea con trucos como GameSharks. No obstante, con este método, no es posible encontrar ciertos Pokémon variocolor como son:

En las ediciones de la cuarta generación, si llevas un Pokémon con la habilidad Gran encanto en el primer puesto, el juego genera Pokémon únicamente con 25 PIDs distintos (del 0 al 25). Al coincidir el ID y el ID secreto y generarse continuamente el mismo Pokémon, las probabilidades de que sea variocolor aumentan considerablemente.

Enlaces externos[editar código | editar]

  1. Enlace para comprobar la compatibilidad del ID de entrenador y el ID secreto.

Véase también[editar código | editar]