Differenze tra le versioni di "Generazione di numeri pseudo-casuali in Pokémon"

nessun oggetto della modifica
m
{{incompleto|necessita=Qualsiasi cosa da dopo la quinta generazione}}
Un '''generatore di {{wp|numeri pseudo-casuali}}''' (in inglese, '''pseudo-random''') è il tentativo, nell'in elettronica e nell'informatica, di creare dei numeri casuali. I computer (e i dispositivi elettronici in genere) non sono stati progettati per essere casuali; pertanto, nei videogiochi e nelle altre forme software si utilizzano spesso degli algoritmi per simulare una casualità che può portare a determinati eventi, come possono essere gli incontri selvatici in Pokémon. Il grado di casualità apparente dipende dalla possibilità di predire il valore successivo in una serie di numeri generati dall'algoritmo pseudo-casuale.
 
== Meccaniche ==
Innanzitutto il generatore deve avere un "seme"''seed'', un numero iniziale dal quale partire. Questo numero è solitamente la data e l'orario in cui l'algoritmo di generazione vieneè stato ''chiamato'' dal software per la prima volta. I semiseed sono talvolta derivati dall'input umano (l'interazione dell'utente col software), e dato che - per la stessa natura umana - è molto difficile riuscire a fare esattamente la stessa cosa più di una volta:, il risultato sembra così essere casuale.
 
QuestoIl semeseed viene passato poi attraverso un algoritmo molto complesso, e il risultato viene formattato a seconda delle esigenze del contesto. Il risultato di questa generazione diventapuò diventare poi esso stesso il semeseed per un utilizzo successivo del generatore pseudo-casuale, rendendo ''[[wp:ricorsività|ricorsivo]]'' l'algoritmo che ne sta alla base.
Innanzitutto il generatore deve avere un "seme", un numero iniziale dal quale partire. Questo numero è solitamente la data e l'orario in cui l'algoritmo di generazione viene ''chiamato'' dal software. I semi sono talvolta derivati dall'input umano (l'interazione dell'utente col software), dato che - per la stessa natura umana - è molto difficile riuscire a fare esattamente la stessa cosa più di una volta: il risultato sembra così essere casuale.
 
== In Pokémon ==
Questo seme viene passato poi attraverso un algoritmo molto complesso, e il risultato viene formattato a seconda delle esigenze del contesto. Il risultato di questa generazione diventa poi esso stesso il seme per un utilizzo successivo del generatore pseudo-casuale, rendendo ''[[wp:ricorsività|ricorsivo]]'' l'algoritmo che ne sta alla base.
===Generatore lineare congruenziale di numeri casuali (LCRNG)===
[[Pokémon Stadium]], i gochi di [[terza generazione|terza]] e [[quarta generazione]] e [[Pokémon Colosseum]] utilizzano un {{wp|generatore lineare congruenziale}}.
 
Nei calcoli sottostanti, ''seed'' è un numero compreso tra <math>0</math> e <math>0xFFFFFFFF</math>. Se il generatore ha già chiamato un numero in precedenza, ''seed'' è il valore risultante dalla precedente chiamata al generatore.
== In Pokémon ==
* Pokémon Stadium: <math>risultato = 0x41C64E6D \times seed + 0x0000303B</math>
** Questa equazione viene calcolata più volte, a seconda del registro della [[Nintendo 64|console]], poi subisce una operazione logica {{wp|Disgiunzione esclusiva|XOR}} con un altro numero pseudocausale.
* Pokémon Colosseum: <math>risultato = 0x000343FD \times seed + 0x00269EC3</math>
* Terza e quarta generazione: <math>risultato = 0x41C64E6D \times seed + 0x00006073</math>
* Macchine Pokémon Machine v2 (usate per la distribuzione di [[Pokémon evento]]): <math>risultato = 0x41C64E6D \times seed + 0x00003039</math>
 
In terza e quarta generazione l'algoritmo è utilizzato per queste funzioni di gioco:
Prendiamo come seme un numero esadecimale qualsiasi tra 0 e 0xFFFFFFFF, oppure il risultato di una precedente chiamata all'algoritmo. Il risultato sarà:
* criptareCriptare i dati dei Pokémon nel file di salvataggio;.
* generareGenerare iil valorivalore di [[Personalitàpersonalità]] di un [[Pokémon selvatico;]].
* generareGenerare i [[puntivalori individuali]] di un Pokémon selvatico;.
* determinareDeterminare la specie di un Pokémon selvatico;.
* determinareDeterminare il numero dellavincente del [[Centro Lotteria ID]].
* Determinare la comparsa di un {{pkmn2|Uovo}} alla [[Pensione Pokémon]].
 
In [[quinta generazione|quinta]] e [[sesta generazione]] il gioco utilizza invece un LCRNG con la seguente formula:
: <math>x = [(\mathsf{0x41C64E6D} \cdot seme) + \mathsf{0x6073}]</math>
:<math>risultato = 0x5D588B656C078965 \times seed + 0x0000000000269EC3</math>
 
== =Generatore alternativo di numeri pseudo-randomcasuali (ARNG)===
Questo algoritmo viene utilizzato per:
I giochi di [[quarta generazione]] utlizzano un algoritmo differente per alternare, modificare o ricalcolare un valore generato in precedenza. L'algoritmo funziona allo stesso modo del precedente, ma con la seguente equazione:
* criptare i dati dei Pokémon nel file di salvataggio;
: <math>xrisultato = [(\mathsf{0x6C078965} \cdottimes seme)seed + \mathsf{0x1}]0x00000001</math>
* generare i valori di [[Personalità]] di un Pokémon selvatico;
* generare i [[punti individuali]] di un Pokémon selvatico;
* determinare la specie di un Pokémon selvatico;
* determinare il numero della [[Lotteria]].
 
Questo algoritmo viene utilizzato pernei seguenti casi:
== Generatore alternativo di numeri pseudo-random ==
* [[Shiny lock|Restrizioni sulla cromaticità]] di alcuni Pokémon specifici:
** lL'uovo{{pkmn2|Uovo}} di [[Manaphy]] inda {{ga|Pokémon Ranger}};,
** I [[Pokémon evento]] ottenuti da [[Scheda Segreta|Schede Segrete]] di tipo 1,
** [[Mew]] e [[Phione]] di [[My Pokémon Ranch]].
* Determinare la specie di una [[Comparse massicce|comparsa massiccia]].
* determinareDeterminare i Pokémon presentigiornalieri nella [[Gran Palude]];.
* determinareDeterminare iil Pokémon presentigiornaliero nel [[Giardino Trofeo]];.
 
===Mersenne Twister (MTRNG)===
Il gioco utilizza un algoritmo differente per riutilizzare un valore già generato in precedenza. Sebbene il concetto alla base dell'algoritmo sia lo stesso, l'equazione diventa:
A partire dalla [[quarta generazione]] è presente un ulteriore algoritmo, il {{wp|Mersenne Twister}}, un generatore di numeri pseudocasuali che produce 624 numeri casuali alla volta che vengono poi conservati e usati quando serve. Una volta che tutti i 624 numeri sono stati usati, viene generato un nuovo set di numeri.
 
Questo algoritmo è usato per le seguenti meccaniche:
: <math>x = [(\mathsf{0x6C078965} \cdot seme) + \mathsf{0x1}]</math>
 
* Generare il [[Numero ID Allenatore]] e il numero di ID segreto (SID) in quarta generazione.
Questo algoritmo viene utilizzato per:
* Generare il numero [[Personalità|PID]] delle {{pkmn2|Uova}} in quarta generazione.
* l'uovo di [[Manaphy]] in {{ga|Pokémon Ranger}};
* Calcolare i cambiamenti dell'[[affetto]].
* determinare le specie di uno [[sciame]] di Pokémon;
* Calcolare le animazioni degli sprite in [[quinta generazione]].
* determinare i Pokémon presenti nella [[Gran Palude]];
* Generare i [[valori individuali]] di un [[Pokémon selvatico]] in quinta generazione.
* determinare i Pokémon presenti nel [[Giardino Trofeo]];
* Determinare la decisione delle [[Mossa|mosse]] usate dall'IA in quinta generazione.
* restrizioni sulla probabilità di [[Pokémon cromatici]] in alcuni [[Dono Segreto|Doni Segreti]].
 
== Collegamenti esterni ==
21 422

contributi