我正在尝试生成0到59的随机数,并且对C中的rand()函数不满意.这是我正在玩的代码:
#include <stdlib.h>
#include <time.h>
main()
{
int num;
srand(time(NULL));
num = rand();
num = num % 59;
printf("%d\n", num);
}
Run Code Online (Sandbox Code Playgroud)
我已经重复了这段代码的运行,并注意到生成的随机数似乎并不是随机的.生成的数字肯定是遵循一种模式,因为每次运行程序时,数字会逐渐变大,直到它回绕到开头(即2,17,21,29,38,47,54,59,4, 11 ....等).
有没有一种方法可以为函数设定种子,这样每次重新运行函数时,我得到一个真正的随机数,生成的概率为1/60?或者是否有任何替代方法我可以自己实现而不是在C中使用rand()函数?