随机数的算术会减少其熵吗?

时间:2014-09-23 21:54:01

标签: math random cryptography entropy

例如,当我在betterexplained.com上阅读this帖子时,作者提到将位于范围(0,1)内的随机数转换为位于范围内的随机数(5, 10)乘以然后加5。

这些操作会降低数字的熵吗?如果是这样/为什么?我知道像地板或天花板这样的操作会降低熵,因为信息会丢失。当我们使用模运算符时,或者甚至在我们对数字进行散列时,信息也会丢失。当平方或取随机数的绝对值时,熵也应该丢失(显然这不适用于0到1之间的数字),因为数字的符号丢失了,这些操作无法撤消。

应用于我们的初始数字的两个函数都有反转(分别为/ 5和-5),因此不应丢失信息。但我不禁认为它是,因为浮点近似。

请帮助我理解为什么我的直觉是或不是这样,无论是理论随机数无限精度,还是现实世界的情况。

3 个答案:

答案 0 :(得分:3)

使用IEEE-754格式,以下范围具有相同的双精度数:

   0.125-  0.25
   0.25 -  0.5
   0.5  -  1.0
   1.0  -  2.0
   2.0  -  4.0
   4.0  -  8.0
   8.0  - 16.0

此外,它们在每个范围内都是等距的。

由此可以清楚地知道,在0 - 1范围内还有比在5 - 10范围内更多的双打。因为5 - 10是一个的3/4加上另一个范围的1/4 5 - 10与所提到的任何范围具有相同的双打数。

然而,这并没有解决它。您必须询问随机数生成器如何生成0-1范围内的数字。一种简单的方法是生成1 - 2范​​围内的随机数,然后减去1,利用1 - 2范​​围内的等距离。但还有其他方法,例如如果它是头部地图1 - 2到0.5 - 1,则翻转硬币。如果尾部再次翻转硬币,如果现在是头部,则将1 - 2映射到0.25 - 0.5等等。这样你就可以生成几乎任何一个范围0 - 1(忽略非规范化数字),同时保持一致性。

答案 1 :(得分:1)

理论上并非如此(因为这些操作是可逆的(更一般地,因为它们是可测量的同构))但是在物理计算机上,由于浮点精度在不同范围内产生不同数量的允许浮点值(例如,[0,1]中的有效浮点值比[5,10]中更多,假设精度相同),计算机生成的伪随机数可能是真的。

这是讨论其中一些的好参考:< http://engineering.medallia.com/blog/2014/08/a-plea-for-an-equal-opportunity-random/>。

答案 2 :(得分:-1)

我在评论中添加了这个问题,但是我还没有足够的要点来添加评论 - 为什么要尝试在随机数中找到熵?

为了回答你的问题,让我们先看一下随机数是什么以及它是如何产生的。我发现这个参考只是为了给出一些背景知识:http://computer.howstuffworks.com/question697.htm

基本上我认为熵更多地依赖于原始随机数的来源。它可以是随机的,由于自然界的某些影响,或者它可以是伪随机的,没有人真正知道创建它的算法,因此很难再现字符串。

你可以争辩说,如果能够在足够深的水平上理解随机数的来源,那么熵基本上可以减少到接近零。你使用的是熵公式吗?这是一个:http://mathworld.wolfram.com/Entropy.html

如果您对源随机数执行操作,您的直觉可能会告诉您熵减少,因为它涉及更好地理解源。通过这个我只是意味着你在等式中添加已知的步骤 - 你可以回溯到源。

我相信所有事情都取决于背景 - 我非常怀疑你会在这个宇宙中找到一个无限精确的随机数。

希望这会增加一些观点。