我使用C生成范围[min max]中的整数随机数。我正在使用
int random_int(int min, int max)
{
return min + rand() % (max - min);
}
但我认为上面的代码是针对范围:[min,max],而不是[min max]。你能告诉我一个代码来完成我的工作。非常感谢
答案 0 :(得分:0)
正如您所猜测的,代码确实生成了不包含max
值的随机数。如果您需要在生成的随机数范围中包含max
值,则范围变为[min,max + 1]。因此,您只需将代码修改为:
int random_int(int min, int max)
{
return min + rand() % (max+1 - min);
}
PS:提供了您发布的原始“模数”伪随机数生成器的质量并不是一个问题(有关@的更多详细信息,请参阅this post undefinedbehaviour在评论中指的是。