如何通过Mersenne Twister生成不重复的随机变量
How to generate not repeated random variables by Mersenne Twister
我想生成1000个不同的k值并计算k的均值和方差,但是当我使用MT时,它在电子表格中始终是相同的数字。以下是我的代码,希望有人可以帮助我。非常感谢!
int main(int argc,char * const argv []){
int simNum=1000;
double x=1;
int k=0;
ofstream fout("hw2(part 2-b).csv");
int seed=time(0);
MTRand_open mt(seed);
for(int i=0;i<simNum;i++)
{
while(x>=exp(-3))
{
x*=mt();
k++;
}
fout<<i<<","<<x<<","<<k-1<<endl;
}
system("Pause");
return 0;
}
您需要在循环中重置x
- 现在,一旦x >= exp(-3)
的条件变为false,代码将永远不会调用mt()
函数以获取另一个随机数。
for(int i=0;i<simNum;i++)
{
while(x>=exp(-3))
{
x*=mt();
k++;
}
fout<<i<<","<<x<<","<<k-1<<endl;
x = 1; // <-- reset x
}
相关文章:
- 将正态随机变量与任意 RHO(corrcoef) 相关联
- 为什么变量的打印地址在每次执行时都会打印随机值,即使它是 C 中的逻辑地址?
- 如何让变量随机输出四个单词之一
- 如何生成随机变量或类名并在以后使用?
- 尝试生成随机变量时获得"-nan(ind)"
- 为什么在 sync_with_stdio(false) 之前使用 cin 为下一个 i/p 变量提供随机值
- 如何使计算机每次在猪游戏中进行随机变量
- 如何通过Mersenne Twister生成不重复的随机变量
- C 中的Bernoulli随机变量
- 快速在C 中添加随机变量
- 为什么这个随机变量没有均匀分布?
- 具有QuantLib的泊松随机变量
- 生成n个随机变量,并用c++将它们相乘
- C++中的Marsaglia正态随机变量
- 随机变量总是生成5
- 随机变量名称,可能吗?
- 用相同的公式生成0和1之间的两个随机变量
- 如何最有效地防止正态分布的随机变量为零
- 如何在没有for循环的情况下请求boost::normaldistribution生成一个大的随机变量向量
- 有没有办法在不计算 CDF 的情况下从非标准分布生成随机变量