在c ++中生成大的随机数,它与pow(2,64)-1非常接近。
解释那个问题,我们应该生成n个随机数,其中大部分是大的,并将它们存储在一个数组中。
答案 0 :(得分:0)
这个问题确实需要进一步澄清。什么是“近在咫尺”?您是要尝试生成加权随机值还是(2 ^ 64)-1最大值?
为了提供答案,我假设后者并且你的随机值总是正的:
可以使用标准库完成生成:
How to generate 64 bit random numbers?
您需要使用uint64_t或类似内容来存储号码。任何较小的数据都可能溢出int界限 https://en.wikipedia.org/wiki/Integer_overflow