Trên Raspberry Pi 3:
>>> nhập ngẫu nhiên
>>> ngẫu nhiên.seed(0.9849899567458751)
>>> ngẫu nhiên.random()
0.47871160253065614
Trên máy tính xách tay của tôi (chạy Ubuntu):
>>> nhập ngẫu nhiên
>>> ngẫu nhiên.seed(0.9849899567458751)
>>> ngẫu nhiên.random()
0,5059711320067936
Tôi cần hai số này bằng nhau. Tôi đoán là điều này có liên quan đến độ chính xác của dấu phẩy động, có thể khác nhau trên hai máy nhưng tôi không biết cách khắc phục điều này.
Làm cách nào để tạo các số ngẫu nhiên có thể lặp lại trong python bất kể mã đang chạy trên máy nào?
hạt giống
Số nguyên nên được sử dụng thay vì số float.
Python 3.5.3 trên Raspberry Pi:
Python 3.5.3 (mặc định, ngày 27 tháng 9 năm 2018, 17:25:39)
[GCC 6.3.0 20170516] trên linux
Type "help", "copyright", "credits" or "license" for more information.
>>> nhập ngẫu nhiên
>>> ngẫu nhiên.seed(9248459222926972)
>>> [random.randint(1, 1000) cho x trong phạm vi(5)]
[586, 818, 989, 122, 519]
Python 3.7.3 trên Windows x64:
Python 3.7.3 (v3.7.3:ef4ec6ed12, ngày 25 tháng 3 năm 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] trên win32
Type "help", "copyright", "credits" or "license" for more information.
>>> nhập ngẫu nhiên
>>> ngẫu nhiên.seed(9248459222926972)
>>> [random.randint(1, 1000) cho x trong phạm vi(5)]
[586, 818, 989, 122, 519]
Có thể gọi "ở chế độ nền" nếu bạn đang sử dụng ngẫu nhiên.*()
Đối với mã thư viện, bạn cũng có thể muốn xem xét việc khởi tạo RNG hạt giống của riêng mình, chỉ để mã của bạn sử dụng:
nhập khẩu ngẫu nhiên
rng = ngẫu nhiên.Random()
rng.seed(9248459222926972)
# ...
Tôi là một lập trình viên xuất sắc, rất giỏi!