Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.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++ 默认的随机引擎为';t为我随机化值_C++_Random_Random Seed - Fatal编程技术网

C++ 默认的随机引擎为';t为我随机化值

C++ 默认的随机引擎为';t为我随机化值,c++,random,random-seed,C++,Random,Random Seed,当我运行函数时,x和y值在每次运行时都保持不变。我不确定是否错误地使用了默认的随机引擎。如何使用dist(engine)使我的x和y值随机化,而不是每次程序执行时的相同输出 种子是一种为伪数生成器提供“随机性”的东西。如果你用同样的种子初始化它,你会得到同样的“随机”模式 在这里,你可能一直在传递同一粒种子 也许你应该这样定义你的函数: long double fn( long reps, default_random_engine & engine ) 在运行程序时声明随机数生成器的

当我运行函数时,
x
y
值在每次运行时都保持不变。我不确定是否错误地使用了默认的随机引擎。如何使用
dist(engine)
使我的
x
y
值随机化,而不是每次程序执行时的相同输出

种子是一种为伪数生成器提供“随机性”的东西。如果你用同样的种子初始化它,你会得到同样的“随机”模式

在这里,你可能一直在传递同一粒种子

也许你应该这样定义你的函数:

long double fn( long reps, default_random_engine & engine )

在运行程序时声明随机数生成器的单个实例,并使用程序启动时始终不同的值(例如系统时间)对其进行一次种子设定。然后,将生成器传递到任何需要生成随机数的函数中。

因此,如果我想将种子1-10传递给生成器,我将如何进行?我是否可能误解了您的问题?起初看起来你不想要同样的种子。你是说不管你用什么种子,你都会得到相同的序列?或者你只是想使用10个不同的种子,但是每次程序运行时它们都是不同的吗?对不起,可能还不清楚。我想使用10种不同的种子,特别是1-10。你说:我如何让我的x和y值随机化,而不是每次程序执行时都是相同的输出?。答案是每次使用不同的种子。如果您强制您的程序仅使用种子1-10(例如
seed=1+(时间(0)%10);
),那么您的程序将只有10个唯一的随机序列。忘记
default\u random\u engine
,它包含在标准中是一个错误。改为使用
mt19937
mt19937\u 64
。显示一些代码。如果没有它,就无法判断您是否“错误地使用了默认的随机引擎”。