【发布时间】:2018-04-07 17:38:58
【问题描述】:
我想在 C++ 中使用随机数生成器来进行随机生成数字的数学测验。
我的问题是使用time(0) 只能精确到一秒。在我使用的 IDE(NetBeans 8.2)中,将鼠标悬停在 srand(time(0)) 上时会出现一条消息:
这是一个弱随机数生成器;它对安全目的没有用。替代方案:getrandom(void *buf,size_t buflen, unsigned int flags);/dev/urandom;
我在网上找不到任何关于 getrandom 的信息。我想知道是否有人可以对getrandom 的语法有所了解?怎么用?
【问题讨论】:
-
你想制作一个随机数生成器还是使用一个?
-
您的随机发生器真的需要安全强度吗?
-
我只是将随机生成的数学测试作为学习 C++ 的“第一个项目”,但是在同一秒内生成的数字总是相同的,所以我想要一种更好的随机生成方法数字
-
@user9464295 您应该只在程序开始时
srand一次。但是现在,有更好的生成随机数的方法,例如@DanielJour 链接的random标准库。