首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PRNG所需的建议

PRNG所需的建议
EN

Stack Overflow用户
提问于 2011-06-02 23:39:23
回答 3查看 231关注 0票数 0

我正在寻找一种伪随机数生成算法,能够产生一个随机的128/256位数。安全性和加密完整性并不重要;简单性和性能高于一切。理想情况下,该算法将在现代移动电话平台上使用。你能推荐这样的算法吗?这可行吗?提前感谢!

EN

回答 3

Stack Overflow用户

发布于 2011-06-13 00:14:52

你应该试试SFMT:面向SIMD的Fast Mersenne Twister。

该PRNG被设计为通过利用处理器提供的向量指令来产生128位整数。

有关这个项目的更多信息,请看看我回复的另一个帖子:best pseudo random number generator

要获得完整的描述,请参阅官方页面,在那里您也可以下载SFMT:http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html

票数 0
EN

Stack Overflow用户

发布于 2011-06-13 01:28:26

如果您最看重的是简单性,请查看this article中的生成器。生成器的核心只有两行代码。它不像Mersenne Twister那样是最先进的,但它更简单,并且仍然具有良好的统计特性。

票数 0
EN

Stack Overflow用户

发布于 2014-11-27 06:18:23

http://burtleburtle.net/bob/rand/smallprng.html

这是小的(128比特的状态)和快速的,并且通过了目前可用的所有通用统计测试。到目前为止,链接到这里的所有其他PRNG都未能通过快速测试-基于MWC的PRNG未能通过许多测试,而SFMT仅未能通过二进制矩阵秩/线性复杂度类型测试。

正如其他人所说,要获得128位,只需连接顺序的32位输出。不要从正常输出函数产生的PRNG状态中强制提取更多的位-这通常会降低输出质量,有时会降低很大的质量。

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

https://stackoverflow.com/questions/6216807

复制
相关文章

相似问题

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