c++ - C++ 中的随机整数

标签 c++ visual-studio random

<分区>

我刚刚用 C++ 编写了下面的代码,但我遇到了一个问题:出现的随机数始终相同..!! 这是我的代码和屏幕截图:

#include <iostream>
using namespace std;

int main() {
    cout << "I got a number in my mind... can you guess it?" << endl;
    int random;
    random = rand() % 20 + 1;

    cout << random << endl;
    system("pause");
    return 0;
}

截图:http://tinyurl.com/n49hn3j

最佳答案

srand(time(0)) 只会产生一个新的随机数,前提是您没有在上次执行的同一秒启动它。还有issues with using rand() % 20 .这将做正确的事:

#include <iostream> 
#include <random> 
int main(){ 
    std::random_device rd;
    std::mt19937 mt(rd());
    std::uniform_int_distribution<int> dist(1, 20);
    std::cout << dist(mt);
}

关于c++ - C++ 中的随机整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23580511/

相关文章:

c++ - 如何将 `__ramfunc` 固有函数应用于构造函数?

c++ - `constexpr std::initializer_list` 可以在编译时使用但不能用于 ODR 吗?

c++ - .lib 链接其他 .libs

ios - 生成一个介于 0 和 1 之间的随机 float

c++ - 如何让 C++ Mersenne Twister 19937 生成器在 Windows 和 Linux 上给出相同的结果?

c++ - Valgrind 条件跳转

c++ - 如何打印祖 parent 是五的倍数的 bst 中的节点?

visual-studio - 如何取出 .sln- 或 .csprojfile 名称并将它们用作条件?

visual-studio - 带有自定义静态代码分析器的 Visual Studio Db 项目

java - 在java中滚动加权数字1-6