我正在寻找能够产生随机128位/ 256位数的伪随机数生成算法。安全和密码完整性并不重要;简单性和性能的价值高于一切。理想情况下,该算法可用于现代手机平台。你能推荐这样的算法吗?这可行吗?提前致谢!PRNG所需的建议
回答
你应该尝试SFMT:面向SIMD的快速梅森扭转者。
该PRNG被设计用于生成128位整数,利用处理器提供的矢量指令。
有关该PRNG的更多信息,请看看其他文章中,我通过建议SFMT回答到:best pseudo random number generator
对于一个完整的说明,请参见官方页面,在这里你还可以下载SFMT:http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html
如果简单是您的首要任务,请查看this article中的发生器。发生器的核心是两行代码。这不像Mersenne Twister这样的先进技术,但它更简单,而且仍然具有良好的统计特性。
您的MWC实施不符合Dan的要求:他需要能够产生128位/ 256位数字的PRNG。 – jopasserat 2011-06-12 19:44:36
http://burtleburtle.net/bob/rand/smallprng.html
即小的(状态的128位)和快速并通过可在这个时候每一个通用的统计检验。到目前为止,在响应中链接到的每个其他PRNG都无法快速进行测试 - 基于MWC的PRNG不能通过许多测试,而SFMT只能通过二进制矩阵秩/线性复杂类型测试。正如其他人所说的,要获得128位简单地连续连续的32位输出。不要从PRNGs状态强行提取其正常输出功能产生的更多位 - 这通常会降低输出质量,有时会大量降低输出质量。
- 1. 设计建议所需
- 2. MySQL查询:建议所需
- 3. 分层设计所需的建议
- 4. 操作媒体库所需的建议
- 5. Powershell脚本流程所需的建议
- 6. 所需的数据库设计建议
- 7. 认识像块 - 建议所需
- 8. 建议需要
- 9. 需要JQuery建议
- 10. AutoMapper建议需要
- 11. 需要解密的建议
- 12. 需要SQL的建议
- 13. 需要ER图的建议
- 14. 需要WordPress的XMLRPC建议
- 15. 建议所需的架构我的代码
- 16. PHP后限制值,限制我的帖子所需的建议
- 17. 良好的AI参考所需的建议
- 18. 非JavaScript版本的输入自动完成所需的建议
- 19. 序列的协议所需的方法
- 20. 需要C建筑图表的建议#
- 21. 同义词数据库所需的设计建议
- 22. 监测一个网站所需的建议
- 23. 数据访问层的库/技术建议所需
- 24. TFS分支策略针对特定变化所需的建议
- 25. 索引巨大表格所需的建议
- 26. 如何自动标记所需的内容,算法和建议
- 27. 在WCF中实现缓存功能所需的建议
- 28. 针对爬虫存储系统所需的建议
- 29. 铁路由器和流星所需的建议
- 30. 在11g环境中替换Oracle SSO 10g所需的建议
为什么不使用内置于您的语言或工具箱公共库中的东西?没有必要重新发明轮子,尤其是在简单性问题时。 – 2011-06-02 15:41:01
对。评论被撤销。 – Nate 2011-06-02 16:20:44
可移植性是一个问题,所以语言并不重要;我应该澄清一点。而且,许多语言的随机数实现只能提供高达32位的数字。 – Dan 2011-06-02 16:36:05