c++ - rand() 和 Mersenne Twister C++ 实现

标签 c++ random

我需要实现一个好的 RNG,我想 Mersenne Twister 可能对我有好处。 我在任何地方都找不到有效的 C++ 实现,我是一个糟糕的谷歌搜索者还是真的不容易找到?! 我在 rand() 之前尝试过:

srand((unsigned)time(0));
for (int i = 0; i < 9; i++) {
     random =  rand();
     cout<<random;
}

我不知道为什么,但是随机变量总是相同的数字......但是如果我添加一个Sleep(1000),它就起作用了!像这样:

srand((unsigned)time(0));
for (int i = 0; i < 9; i++) {
    random =  rand();
    cout<<random;
    Sleep(1000);
}

所以我决定试试 Mersenne Twister...有人能找到解决这个问题的方法吗(因为我需要找到非常非常多的随机数,所以我不能使用 Sleep(1000),这需要很多时间!)或者帮助我实现 Mersenne Twister 或者另一个好的 RNG。 谢谢,对不起我的英语不好......

最佳答案

C++11 包含一个带有 random standard library header 的梅森扭曲器.

关于c++ - rand() 和 Mersenne Twister C++ 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19220561/

相关文章:

r - 如何在 R 中生成 GUID?

php - 如何使用 PHP 在 MySQL 上使用随机或随机数据?

sql - 如何在postgresql中使用设置种子选择可重复的随机数?

c++ - 为什么 'allocate in one library and free in the other'是错误的

c++ - 什么是 std::strtoul for unicode

c++ - 读几个字节,跳过N个字节,再读几个字节。如何?

swift - 如何在特定位置生成随机对象

c++ - jom.exe 返回退出代码 2 和许多 Boost 警告

c++ - 连接到数据库时出现错误 `driver not loaded`

c - 生成一个长度为25的随机数