我使用公知的隨機種子產生一些測試數據。我想從cpython和jython中使用這些數據。我發現如果我使用jython(2.5.2)和cpython,數據是不同的。Jython的隨機模塊產生不同的結果CPython的
沸騰它歸結爲一個簡單的測試,我可以看到,PRNG在兩種實現方式給予不同的結果:
在Jython中:
Jython 2.5.2 (Release_2_5_2:7206, Mar 2 2011, 23:12:06)
[Java HotSpot(TM) Server VM (Sun Microsystems Inc.)] on java1.6.0_26
Type "help", "copyright", "credits" or "license" for more information.
>>> import random
>>> random.seed(1)
>>> random.random()
0.7308781974052877
在CPython中:
Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import random
>>> random.seed(1)
>>> random.random()
0.13436424411240122
我生成的測試數據在每個python實現中都是可重現的。有沒有解決的辦法?也許我需要編寫自己的PRNG?
這是可以預期的。這些東西幾乎總是實現細節。 – delnan
也許這是您正在尋找的隨機數生成器:http://dilbert.com/strips/comic/2001-10-25/ –