Rand 在从最大为 75 的数字 (36) 开始时如何工作
How does Rand work when starting at a number(36) with a max of 75
我正在创建一个随机数生成器,每当我 运行 当前代码块时,我总是会得到一些超过预期限制的数字。它的工作方式是我有一组随机生成的数字,从 36 到 75,调整后的数字比原始数字高 5 个,低 5 个。例如,我最终会得到 75 以上的数字。最高的是 105。
这只是6个数字中的一个。
//Displays picks for Number 4
pick4 = (rand() % 75) + 36;
if (pick4 == pick3)
pick4 = (rand() % 75) + 36;
if (pick4 + 5 < 75 + 1)
{
if (pick4 - 5 > 0)
{
adjHighPick4 = pick4 + 5;
adjLowPick4 = pick4 - 5;
}
}
当你想得到一个从A
到B
的随机整数时,你只需要一个从0
到B-A
的随机整数,你添加A
。所以,你应该写 rand() % 39 + 36
(A=36, B=75, B-A=39
)
而不是 rand() % 75 + 36
我正在创建一个随机数生成器,每当我 运行 当前代码块时,我总是会得到一些超过预期限制的数字。它的工作方式是我有一组随机生成的数字,从 36 到 75,调整后的数字比原始数字高 5 个,低 5 个。例如,我最终会得到 75 以上的数字。最高的是 105。 这只是6个数字中的一个。
//Displays picks for Number 4
pick4 = (rand() % 75) + 36;
if (pick4 == pick3)
pick4 = (rand() % 75) + 36;
if (pick4 + 5 < 75 + 1)
{
if (pick4 - 5 > 0)
{
adjHighPick4 = pick4 + 5;
adjLowPick4 = pick4 - 5;
}
}
当你想得到一个从A
到B
的随机整数时,你只需要一个从0
到B-A
的随机整数,你添加A
。所以,你应该写 rand() % 39 + 36
(A=36, B=75, B-A=39
)
rand() % 75 + 36