【问题标题】:Fixed range of random numbers between (and including) 100 and 149 [duplicate]固定的随机数范围(包括)100 到 149 [重复]
【发布时间】:2014-10-23 16:54:46
【问题描述】:

键入两个使用rand() 的语句来打印100 和149 之间(包括)100 和149 之间的2 个随机整数。以换行符结束。例如:

101
133

我试过了……

cout << rand() % 100 << endl;
cout << rand() % 149 << endl;

...无法让它工作。

我很困惑。任何帮助,将不胜感激!

【问题讨论】:

  • (rand() % 49) + 100?
  • (rand() % 50) + 100 应该更好,考虑到包括在内。
  • 没关系!弄清楚了!这是其他任何遇到这个问题的人都感到困惑。 cout
  • @AustinColemanHead:这是什么rand() 带参数?还要注意rand((149 - 100 + 1) + 100) == rand(150) ..

标签: c++ random


【解决方案1】:

Don't use(rand() % 50) + 100,如果您想要均匀分布。

使用&lt;random&gt; 标头中的std::uniform_int_distribution

#include <random>
#include <iostream>

int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> dis(100, 149);

    for (int n=0; n<2; ++n)
        std::cout << dis(gen) << ' ';
    std::cout << '\n';
}

Live demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 2014-10-23
    • 2018-06-22
    • 2020-04-24
    • 2017-02-13
    相关资源
    最近更新 更多