Robin Becker wrote: > Is there a way to get the same sequences of random numbers in python 2.7 > and python >= 3.3? > > I notice that this simple script produces different values in python 2.7 > and >=3.3 > > C:\code\hg-repos\reportlab>cat s.py > import sys, random > print(sys.version) > random.seed(103) > for i in range(5): > print(i, random.randint(10,25)) > > C:\code\hg-repos\reportlab>\python27\python s.py > 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit > (AMD64)] 0 25 > 1 17 > 2 21 > 3 21 > 4 13 > > C:\code\hg-repos\reportlab>\python33\python s.py > 3.3.5 (v3.3.5:62cf4e77f785, Mar 9 2014, 10:35:05) [MSC v.1600 64 bit > (AMD64)] 0 24 > 1 16 > 2 12 > 3 13 > 4 22 > > However, when I use random.random() all seems to be the same so this > script C:\code\hg-repos\reportlab>cat u.py > import sys, random > print(sys.version) > random.seed(103) > for i in range(5): > print(i, random.random()) > > seems to be fine > > > C:\code\hg-repos\reportlab>\python27\python u.py > 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit > (AMD64)] (0, 0.9790501200727744) > (1, 0.45629827629184827) > (2, 0.7188470341002364) > (3, 0.7348862425853395) > (4, 0.21490166849706338) > > C:\code\hg-repos\reportlab>\python33\python u.py > 3.3.5 (v3.3.5:62cf4e77f785, Mar 9 2014, 10:35:05) [MSC v.1600 64 bit > (AMD64)] 0 0.9790501200727744 > 1 0.45629827629184827 > 2 0.7188470341002364 > 3 0.7348862425853395 > 4 0.21490166849706338 > > presumably randint is doing something different to get its values.
The docs [https://docs.python.org/3/library/random.html#random.randrange] for randrange have this note: Changed in version 3.2: randrange() is more sophisticated about producing equally distributed values. Formerly it used a style like int(random()*n) which could produce slightly uneven distributions. Maybe that's the explanation? Unfortunately I don't have an install of 3.0/1 to test against. -- https://mail.python.org/mailman/listinfo/python-list