首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高熵随机数据创建函数?

高熵随机数据创建函数?
EN

Stack Overflow用户
提问于 2015-01-20 23:15:01
回答 1查看 403关注 0票数 0

是否存在产生“无限”量的高熵数据的函数?此外,是否存在一次又一次产生相同随机数据(顺序)的函数?

我知道他们的存在,但他们有具体的名字吗?

用例示例:

  • 使用该函数生成100位随机数据。(太棒了!)但是在保持高熵值的同时。
  • 使用相同的函数生成10000位随机数据。(所生成的前100位与之前生成的100位随机数据相同)。在保持高熵值的同时

此外,我将如何自己构建这些功能呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-21 00:57:03

您很可能在寻找伪随机数发生器

  • 它们由种子初始化,从而获得有限的熵。
  • 好的生成器有一个很好的熵,假设你只从它的输出来判断它(因此你忽略了种子和/或生成数字的算法,否则熵显然是0)。 大多数PRNG算法产生的序列都是由多个测试中的任意一个均匀分布的。这是一个公开的问题,也是密码学理论和实践中的一个核心问题,是否有任何方法可以区分高质量PRNG的输出和真正的随机序列,而不知道所使用的算法和初始化它的状态。
  • 所有PRNG都有一个周期,在此之后生成的序列将重新启动。 PRNG的周期是这样定义的:在所有起始状态下,序列的无重复前缀的长度的最大值。周期以状态数为界,通常以位为单位。但是,由于每添加一段“状态”,周期的长度可能会加倍,因此很容易构建足够长的PRNG,以满足许多实际应用的需要。

因此,要有两个长度不同的序列,其中一个是另一个的前缀,您只需两次运行一个具有相同种子的PRNG。

自己构建它们将非常困难,但是一个非常好的简单的方法是梅森扭子,它可以追溯到1998年,并在松本和西村的论文[1]中定义。

一个简单的例子就是一个线性同余发生器

1松本,M.;Nishimura,T. (1998年)。"Mersenne龙卷风:一种623维均匀均匀伪随机数发生器“。ACM事务关于建模和计算机仿真8 (1):3-30。10.1145/272991.272995

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

https://stackoverflow.com/questions/28056965

复制
相关文章

相似问题

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