我想知道,是否有可能在 c 中生成两个限制之间的随机数。 IE。我的程序是这样设置的:
function x
{
generate random number;
}
while(1)
{
function x;
delay
}
所以基本上我希望每次调用该函数时都会生成一个随机数,但该数字必须介于例如 100 和 800 之间
我知道已经有一个名为 random 和 randomize 的函数stdlib.h
我只是不知道如何创建上限和下限
谢谢
首先,不要忘记播种你的 PRNG一次且仅有一次:
srand(time(NULL));
那么这个函数should做你想做的事。
(经过轻微测试,似乎有效)
int RandRange(int Min, int Max)
{
int diff = Max-Min;
return (int) (((double)(diff+1)/RAND_MAX) * rand() + Min);
}
就您而言,您需要:
x = RandRange(100, 800); /* x will be between 100 and 800, inclusive */
这使用浮点数学,它可能比模 (%) 运算慢,但偏差较小。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)