Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 生成相同的随机整数_C++_Gmp - Fatal编程技术网

C++ 生成相同的随机整数

C++ 生成相同的随机整数,c++,gmp,C++,Gmp,我想生成一个n字节的随机整数z,这样 2^(n-1)gmp\u randinit\u default显然将种子设置为某个固定值。您应该在之后调用,以将种子设置为您自己的值,该值在每次运行时都不相同 对于初始测试,您可以尝试gmp\u randseed\u ui(state,getpid())。在Linux上,通过调用getrandom()或读取/dev/uradom可以获得更随机的种子。不确定MacOS上提供了哪一个。我不知道如何使用GMP,但您似乎用默认的初始化结构初始化了随机状态。我天真地假

我想生成一个n字节的随机整数z,这样


2^(n-1)
gmp\u randinit\u default
显然将种子设置为某个固定值。您应该在之后调用,以将种子设置为您自己的值,该值在每次运行时都不相同


对于初始测试,您可以尝试
gmp\u randseed\u ui(state,getpid())
。在Linux上,通过调用
getrandom()
或读取
/dev/uradom
可以获得更随机的种子。不确定MacOS上提供了哪一个。

我不知道如何使用GMP,但您似乎用默认的初始化结构初始化了随机状态。我天真地假设这个默认值总是相同的。也许有一个函数可以从系统中获取该状态的“真实”随机性?你是在循环中这样做的吗?仅一次,在
主功能中?你什么时候在哪里工作?请尝试创建一个演示。愚蠢的鹅,
gmp\u randseed\u ui
确实丢失了。我从
/dev/uradom
中读取了一个
无符号长整型
,然后将其传递给
gmp\u randseed\u ui
,一切都像一个符咒。我想知道从
/dev/uradom
读取多少数据就足以可靠地生成非常长(比如8192位)的整数,但我想这是一个完全不同的问题。@lead-free:默认的PRNG是Mersenne Twister,所以我先看看