利用 timeb 生成毫秒级别随机数
众所周知,重复打开相同的可执行文件,想要输出的数不同,往往需要以时间作为随机种子。
如:
#include<bits/stdc++.h>
int main()
{
srand(time(0));
int a = rand();
printf("%d\n", a);
}
但是,以这种方式,在每 1 秒内重复运行这个程序,输出的随机数都是相同的。
那么,想要打破这个 “1 秒限制”,就需要用到 timeb
。
#include<bits/stdc++.h>
int main()
{
struct _timeb T;
_ftime(&T);
srand(T.millitm); //获得毫秒
int a = rand();
printf("%d\n", a);
}
这样,在 1 秒内反复执行程序:
可以看到每次执行程序输出的随机数都不同。
这样,就实现 “利用 timeb 生成毫秒级别随机数” 了。
EdisonBa
2023.7.29