Estoy tratando de reproducir una secuencia aleatoria de random.random()
de Python en un sistema diferente con una versión diferente de python3 instalada.¿Por qué sembrar el generador aleatorio no es estable entre las versiones de Python?
Esto debería ser fácil ya que el documentation says:
La mayoría de los algoritmos del módulo al azar y funciones de siembra son sujeto a cambios en las versiones de Python, pero dos aspectos están garantiza que no se cambie:
- Si se agrega un nuevo método de siembra, se ofrecerá una sembradora compatible con versiones anteriores .
- El método aleatorio() del generador continuará a producirá la misma secuencia cuando la sembradora compatible reciba la misma semilla .
así que espero que el siguiente código para imprimir siempre los mismos 10 números, no importa la versión python3 específica:
import sys
print(sys.version)
from random import seed, random
seed(str(1))
for i in range(10):
print(random())
Sin embargo, para ello, en dos máquinas diferentes:
3.2.3 (default, May 3 2012, 15:51:42)
[GCC 4.6.3]
0.4782479962566343
0.044242767098090496
0.11703586901195051
0.8566892547933538
0.2926790185279551
0.0067328440779825804
0.0013279506360178717
0.22167546902173108
0.9864945747444945
0.5157002525757287
y
3.1.2 (release31-maint, Dec 9 2011, 20:59:40)
[GCC 4.4.5]
0.0698436845523
0.27772471476
0.833036057868
0.35569897036
0.36366158783
0.722487971761
0.963133581734
0.263723867191
0.451002768569
0.0998765577881
Dé diferentes resultados.
¿Por qué es esto? Y ¿hay alguna manera de hacer que esto funcione
por lo que vale la pena, corriendo el fragmento de código en 2,7 produce un conjunto completamente diferente de los números que cualquiera de los dos informados. –
Afirma que * se ofrecerá una sembradora compatible con versiones anteriores *, no que el método existente sea compatible con versiones anteriores. – borrible