如果说 rand()的结果并不是很随机的话,如何在程序中做出更加随机的效果?

2018 年 9 月 9 日
 showecho
当然程序上也不能太复杂,也并不是一定要完全随机
6291 次点击
所在节点    程序员
41 条回复
cgcs
2018 年 9 月 9 日
新的 intel 处理器应该没这个问题了
zwh2698
2018 年 9 月 9 日
使用 ssl 的随机数会有改善
thedrwu
2018 年 9 月 9 日
熵池
hhsuan
2018 年 9 月 9 日
单靠软件是不行的,必须有硬件支持
carlclone
2018 年 9 月 9 日
随机的随机种子
herozhang
2018 年 9 月 9 日
有个随机数的网站,说是从大气白噪声和宇宙微波辐射来产生随机数
AzadCypress
2018 年 9 月 9 日
真随机拿设备采环境噪声做种子
GeruzoniAnsasu
2018 年 9 月 9 日
shakespaces
2018 年 9 月 9 日
单软件允许联网的话可以用网上的一些 api
允许硬件的话,linux 有 /dev/random 和 /dev/urandom 可以使用
wevsty
2018 年 9 月 9 日
Windows:
C 可以使用 C Run-Time Library 中提供的 rand_s(),或者直接调用 API RtlGenRandom()

Linux
可以直接读取 /dev/random 或者 /dev/urandom 生产的数据。

跨平台
Cpp 可以使用 std::random_device (需要 C++11 以上)
402124773
2018 年 9 月 9 日
linux 下会用中断增加熵,一些随机中断,是可以用来产生随机数的吧
zjyl1994
2018 年 9 月 9 日
可以考虑用密码学的随机生成器,那个随机性比较高
alvin666
2018 年 9 月 9 日
linux 用 ssh 生成密钥据说是用的 cpu 热信息,putty 生成 key 是用鼠标在某区域划动
silhouette
2018 年 9 月 9 日
硬件随机啊
newtype0092
2018 年 9 月 9 日
rand()不就是“程序上也不能太复杂,也并不是一定要完全随机”吗?
innoink
2018 年 9 月 9 日
use getrandom()
winglight2016
2018 年 9 月 9 日
有第三方服务,号称真随机,不过,理论上说,宇宙大爆炸是第一动因,其他都不过是必然的结果,所以真随机的说法也很可疑
kY8mbXW833Lu28xn
2018 年 9 月 9 日
必没有,除非你能证明整个宇宙是随机的
rateltalk
2018 年 9 月 9 日
mt_rand ?
t6attack
2018 年 9 月 9 日
如果你的开发中用得上,自然能接触到解决方案。比在这问的专业多了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/487636

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX