R和Python中是否有现成的方法可以生成相同的PRNG结果?
后台:我正在尝试将一些代码从R迁移到Python。它包含一个使用sample
而无需替换的算法。
我可以通过(更简单)显示它在一小组输入上产生相同的结果来验证迁移的代码,或者(更复杂的)显示结果在给定更大的输入集合的情况下收敛。
让我们说我想采取简单的路线。显然,以下内容不会产生相同的结果,因为在引擎盖下有不同的 PRNG和实现的采样函数。
# R
set.seed(1)
sample(0:9,3)
# returns vector 2 3 4
和
# Python
import random
random.seed(1)
random.sample(range(10),3)
# returns list 2 1 4
我可以把它搞砸并编写我自己的PRNG,这将是有教育意义的,但需要更多的程序员时间(在非优化代码上)。如果是这样,我可能会选择更复杂的验证。
有没有其他方法可以使用现有的库?我宁愿不介绍第三方依赖(如Java API)。目前倾向于rPython
实施但对任何事情都开放。
更新:此closely related question没有接受的答案,并且不会直接解决随机选择问题,只会生成随机均匀分布。