首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >除了rand()之外,是否有任何随机生成器库,哪个开发人员可以手动设置种子?

除了rand()之外,是否有任何随机生成器库,哪个开发人员可以手动设置种子?
EN

Stack Overflow用户
提问于 2019-10-19 17:59:58
回答 2查看 111关注 0票数 0

我想验证一下,如果种子是相同的,那么产生的伪随机数是相同的。使用rand()是最简单的,但我正在寻找更安全的方法。我发现将设备熵与/dev/随机linux一起使用是非常可靠的,但无法找到如何设置完全相同的种子。我也尝试了密码随机窗口,但找不到方法来设置种子。我能用那些使用设备的随机发生器做人工种子吗?或者还有其他随机生成器库,我可以设置手动种子?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-19 18:12:54

是否有任何随机生成器库,除了rand(),哪个开发人员可以手动设置种子?

是。有许多可用的随机数生成器(大多数是可种的),它们都优于rand() (这是非常糟糕的)。不要在生产代码中使用srand()/rand()

查看头。

我建议将std::mt19937用于非加密目的(确保正确地为它添加种子,而不仅仅是使用单个int),如果需要原始熵(请确保检查您的实现是否真正正确地实现了它,标准--错误的IMHO --允许它返回到PRNG)。远离std::default_random_engine,你不知道它会给你带来什么。

票数 1
EN

Stack Overflow用户

发布于 2019-10-19 18:14:54

是的,<random>允许这样做,切换到它是个好主意。C++的<random>库是far superior<stdlib>rand()函数,并允许您在编写的任何生产代码中使用<random>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58466543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档