【问题标题】:Create a random even number between range在范围之间创建一个随机偶数
【发布时间】:2010-08-01 18:52:12
【问题描述】:

好的,我需要创建一个介于 54 和 212 之间的偶数随机数。唯一的问题是它必须在单个语句中完成。我有一个类可以在一个范围内生成随机数,但就像我说的,我想在一个语句中完成它。我想出了这个,但它不能正常工作。有什么想法吗?

int main()
{

    srand( time(NULL));
    int i;

    i =  (rand() % 106) * 2;

    cout << i;


    return 0;
}

【问题讨论】:

  • 这是作业吗?
  • 为什么要在单个语句中执行此操作?这是作业吗?

标签: c++ random srand


【解决方案1】:

在区间[27, 106] 中生成任意数字并将其乘以2。您的问题是您没有下限。

int i = 2 * (27 + rand() % (106 - 27 + 1))  

一般来说,要在[a, b] 中生成一个随机数,请使用:

int i = a + rand() % (b - a + 1)

要了解这为何有效,请尝试简单的示例,例如 [2, 4][3, 7] 等。

【讨论】:

  • 你能解释一下逻辑吗?
  • @Goutam - rand() 生成一个随机数 &gt;= 0。取模 b - a + 1 将把它放在 [0, b - a] 中。添加a 会将其放入[a, b]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
  • 2013-05-05
  • 2020-09-07
相关资源
最近更新 更多