Python 2.3 e versioni successive utilizzano il generatore Mersenne Twister, che è indipendente dalla funzione casuale del sistema (implementata come modulo di estensione C per Python). Per qualsiasi versione che utilizza Mersenne Twister, i risultati dovrebbero essere gli stessi su tutte le versioni e piattaforme.
In precedenza, è possibile garantire la compatibilità con le versioni precedenti utilizzando il generatore WichmannHill
, ma sfortunatamente sembra che sia stato rimosso in Python 3.x.
Se è assolutamente necessario garantire la compatibilità, scrivere il proprio Random
sottoclasse (o usare un'implementazione esterna stabile, ad esempio simplerandom) come raccomandato dalla documentazione random
:
classe a caso può essere sottoclasse se si vuole utilizzare un generatore di base diverso per la propria idea: in tal caso, sovrascrivere i metodi random(), seed(), getstate(), setstate() e jumpahead(). Facoltativamente, un nuovo generatore può fornire un metodo getrandbits(): ciò consente a randrange() di produrre selezioni su un intervallo arbitrariamente ampio.
http://docs.python.org/dev/ library/random.html # random.seed –
non dice se python3.x e python3.y dove x! = y produrrà gli stessi risultati –
Se la documentazione non afferma che i risultati sono garantiti per essere uguali nelle versioni python quindi non fa parte dell'API e non è corretto dipendere da esso. O, almeno, questo è quello che penso. Anche se il fatto che l'algoritmo sia menzionato può portare a porre la tua domanda. – Bakuriu