Нужна помощь в понимании концепции здесь - у меня есть этот код
import random
random.seed(a=57)
def run_round(info):
random.seed(a=57)
d = {}
for i in info:
performance_value = random.normalvariate(info[i][0], info[i][1])
d[i] = performance_value
return d
info = {'abc': (100, 5), 'bcd': (95, 5)}
print(run_round(info))
Теперь, если я запущу эту программу 5 раз в python3, вывод будет -
{'bcd': 86.51389158254244, 'abc': 105.76045089520113}
{'abc': 91.51389158254244, 'bcd': 100.76045089520113}
{'abc': 91.51389158254244, 'bcd': 100.76045089520113}
{'bcd': 86.51389158254244, 'abc': 105.76045089520113}
{'bcd': 86.51389158254244, 'abc': 105.76045089520113}
А в python2 вывод -
{'bcd': 86.51389158254244, 'abc': 105.76045089520113}
{'bcd': 86.51389158254244, 'abc': 105.76045089520113}
{'bcd': 86.51389158254244, 'abc': 105.76045089520113}
{'bcd': 86.51389158254244, 'abc': 105.76045089520113}
{'bcd': 86.51389158254244, 'abc': 105.76045089520113}
5 просто для справки, я хочу сказать, почему существует разница в значениях в python3, если я дал семя, которое в некоторых случаях одинаково.
Изменить - попробовал с random.seed(a=57, version=1)
и получил этот результат -
{'abc': 91.51389158254244, 'bcd': 100.76045089520113}
{'abc': 91.51389158254244, 'bcd': 100.76045089520113}
{'abc': 91.51389158254244, 'bcd': 100.76045089520113}
{'bcd': 86.51389158254244, 'abc': 105.76045089520113}
{'bcd': 86.51389158254244, 'abc': 105.76045089520113}
Я не понял, почему есть разница в результатах, даже если мой seed остается прежним.
version
дляseed
в 3.x. - person jonrsharpe   schedule 28.11.2014info
этоOrderedDict
? - person jonrsharpe   schedule 08.07.2016