利用 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

posted @   EdisonBa  阅读(1690)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示
主题色彩