c++11 random_device 真随机数最简单应用
c++11提供了random_device,据说是真随机数,不过只有在Linux下是真随机,因为Linux有熵池;在Windows下只是调用了rand_s。( ・´ω`・ )
代码如下
#define random(min,max) (gen()%(max-min+1))+min #include <random>//随机数 using namespace std; int main() { random_device rd;//随机数发生器 mt19937 gen(rd());//随机数引擎 cout<<random(0,100)<<endl; }
不过不知为什么,每次打开程序随机数序列都一样,如有特殊需要可以加上头文件,然后把
(gen()%(max-min+1))+min
改为
(gen()*time(NULL)%(max-min+1))+min
如果没有看懂,可以去看以下讲解
C++11随机数的正确打开方式
mt19937是什么鬼?
或者查看官方文档
random_device
mt19937
如果还没有看懂,建议使用srand()和rand()
#define random(min,max) (rand()%(max-min+1))+min #include <random>//随机数 using namespace std; int main() { srand(time(NULL)); cout<<random(0,100)<<endl;
}
————————————————
版权声明:本文为CSDN博主「Dwi yn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jgjfror/article/details/113790271
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2016-05-28 SQL2005自动备份,定期删除的维护计划及自动定期清除日志
2016-05-28 SQL Server中存储过程与函数的区别
2016-05-28 SQL Server 存储过程 .
2014-05-28 Qt那点事儿(三) 论父对象与子对象的关系
2014-05-28 Qt多线程应用--QRunnable
2014-05-28 Qt学习之如何启动和终止一个线程
2014-05-28 Qt 互斥量 QMutex