Math 对一个随机数的算术运算会减少它的熵吗?

Math 对一个随机数的算术运算会减少它的熵吗?,math,random,cryptography,entropy,Math,Random,Cryptography,Entropy,例如,当我在betterexplained.com上阅读文章时,作者提到将一个范围(0,1)内的随机数乘以5,然后相加,将其转换为范围(5,10)内的随机数 像这样的操作会降低这个数的熵吗?如果是,如何/为什么?我知道像地板或天花板这样的操作会降低熵,因为信息会丢失。当我们使用模运算符时,甚至当我们散列数字时,信息也会丢失。当平方或取一个随机数的绝对值时,熵也会丢失(显然,这不适用于0和1之间的数字),因为数字的符号丢失,这些操作无法撤消 应用于初始数的两个函数都有倒数(/5和-5),所以信息不

例如,当我在betterexplained.com上阅读文章时,作者提到将一个范围(0,1)内的随机数乘以5,然后相加,将其转换为范围(5,10)内的随机数

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

应用于初始数的两个函数都有倒数(/5和-5),所以信息不应该丢失。但我忍不住认为是的,因为浮点近似


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

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

为了回答你的问题,让我们先看看什么是随机数以及它是如何产生的。我找到这篇参考文献只是为了提供一些背景:

本质上,我认为熵更依赖于原始随机数的来源。由于自然的影响,它可以是随机的,也可以是伪随机的,因为没有人真正知道创建它的算法,因此很难复制字符串

你可以说,如果你能在足够深的层次上理解随机数的来源,那么熵基本上可以降到接近零。你在用熵公式吗?这里有一个:

你的直觉可能告诉你,如果你对源随机数进行运算,熵会减少,因为这涉及到更好地理解源。我的意思是,你在方程中加入已知的步骤,你可以追溯到源头

我相信,正如所有事情一样,它取决于的上下文-——我非常怀疑你会在这个宇宙中找到一个无限精确的随机数


希望这能增加一些观点。

使用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范围内的几乎任何双精度(忽略非规范化数字)。

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


这里有一个很好的参考资料讨论了其中的一些:<>。

在这里提问可能更好,几乎肯定是离题了。@HighPerformanceMark我认为这更多是关于IEEE关于浮点值的规范,以及它与硬件上实际伪随机数生成器的计算熵的关系。我认为它不属于CS站点——在这里更合适。为什么在这上面是负1?