我正在尝试生成一个随机数 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);
}
我重复了这段代码的运行,并注意到生成的随机数看起来并不那么随机。生成的数字肯定遵循一个模式,因为每次我运行程序时,数字都会逐渐变大,直到它回到开头(即 2、17、21、29、38、47、54、59、4、 11....等)。
有没有一种方法可以为函数播种,这样每次我重新运行函数时,我都会得到一个真正的随机数,有 1/60 的机会生成?或者有什么替代方法我可以自己实现而不是使用 C 中的 rand() 函数?