我需要使用c生成随机的64位无符号整数。我的意思是,范围应该是018446744073709551615RAND_MAX是指1073741823
我在链接中找到了一些可能重复的解决方案,但答案大多是连接一些rand()结果或进行一些增量算术运算。所以结果总是18位数或20位数。我也想要像51133387这样的结果,而不仅仅是3771778641802345472
顺便说一下,我真的没有太多使用C的经验,但是任何方法、代码示例和想法都是有益的。

最佳答案

如果不需要加密的伪随机数,我建议使用mt19937-64。它是Mersenne Twister PRNG的64位版本。
请不要合并rand()输出,也不要建立在其他技巧之上。使用现有的实现:
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt64.html

10-01 19:44
查看更多