直接播种CPython的Mersenne Twis

2024-10-02 00:43:56 发布

您现在位置:Python中文网/ 问答频道 /正文

CPython实现random标准模块的底层PRNG是在Modules/_randommodule.c中实现的mersene Twister。在阅读源代码时,似乎调用random.seed将首先调用源文件中定义的^{},而源文件又反过来调用^{}。我想知道是否有某种方法可以绕过对init_by_array的调用,并从Python代码中直接使用特定的种子调用init_genrand(或者,给定所需的种子,构造一个可以传递给random.seed的Python对象,以便使用该种子调用init_genrand

我这样做的动机是,我想测试我自己的Mersenne Twister实现,在提供一个特定的seed之后,将它的输出与random.getrandbits的输出进行比较


Tags: 模块modules标准initrandomcpython种子seed

热门问题