mersenne twister的C实现产生的结果等于PHP中的mt_rand?

时间:2015-06-20 21:09:14

标签: php c mersenne-twister

我正在处理某些应用,需要验证随机数生成的一些结果。我可以在PHP中完成它,与源应用程序相同,但速度很慢。我们希望用C代码验证验证器的速度。问题是C语言中每个MT算法的实现都会产生与PHP相同的结果(使用相同的种子)。

最大的问题是来自PHP的数据已经完成,并且已经被数据库记录了两个多月了 - 我们不能只改变PHP中的生成器(我知道这个类符合标准C结果)。

我认为它与整数大小和PHP的签名/无符号问题有关 - 我们的32位实现的MAX_RAND为2.147亿(或者不管确切的数字是什么),而C中的相同数据类型是-2.147bil到如果签字则为2.147 bil,如果未签名则为4.3bil。

有没有办法限制C中的最大整数大小?或者有人知道一个实现,使用相同的种子,我们可以产生相同的结果?我真的不想用PHP做这件事 - 相比之下,它的速度非常慢。

0 个答案:

没有答案