Почему заполнение генератора случайных чисел нестабильно между версиями Python?

Я пытаюсь воспроизвести случайную последовательность из python random.random()в другой системе с другой установленной версией python3.

Это должно быть легко, как говорится в документации :

Most of the random module’s algorithms and seeding functions are subject to change across Python versions, but two aspects are guaranteed not to change:

  • If a new seeding method is added, then a backward compatible seeder will be offered.
  • The generator’s random() method will continue to produce the same sequence when the compatible seeder is given the same seed.

. Поэтому я ожидаю, что следующий код всегда будет печатать одни и те же 10 чисел, независимо от конкретной версии python3:

import sys
print(sys.version)

from random import seed, random

seed(str(1))
for i in range(10):
    print(random())

Однако тестирование на двух разных машинах:

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

и

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

Дайте разные результаты.

Почему это? И есть ли способ заставить это работать (, то есть получить одну и ту же случайную последовательность дважды?)

22
задан p-a-o-l-o 6 March 2019 в 15:29
поделиться