我正在生成8个随机位(0或1)并将它们连接在一起以形成8位数字。一个简单的Python模拟在离散集[0,255]上产生均匀分布。
我试图证明为什么这在我的脑海中有意义。如果我将其与掷8个硬币进行比较,那么期望值会不会在4头/ 4头左右?因此对我来说,我的结果应该反映出范围中间的峰值是有意义的。换句话说,为什么8个零或8个数的序列似乎与4和4或5和3等的序列一样相等?我在这里想念什么?
我正在生成8个随机位(0或1)并将它们连接在一起以形成8位数字。一个简单的Python模拟在离散集[0,255]上产生均匀分布。
我试图证明为什么这在我的脑海中有意义。如果我将其与掷8个硬币进行比较,那么期望值会不会在4头/ 4头左右?因此对我来说,我的结果应该反映出范围中间的峰值是有意义的。换句话说,为什么8个零或8个数的序列似乎与4和4或5和3等的序列一样相等?我在这里想念什么?
Answers:
TL; DR: 硬币与硬币之间的鲜明对比是,对于硬币,您将忽略结果的顺序。HHHHTTTT与TTTTHHHH相同(都具有4个头和4个尾巴)。但是以位为单位,您关心顺序(因为必须给位位置赋予“权重”才能获得256个结果),因此11110000与00001111不同。
更长一点的解释: 如果我们对问题的框架更加正式,则可以更精确地统一这些概念。假设一个实验是八项试验的序列,结果二分,“成功”概率为0.5,“失败”概率为0.5,并且这些试验是独立的。通常,我将其称为成功,总试验和失败,成功的概率为。n n − k p
在硬币示例中,结果“个头,尾巴”忽略了试验的顺序(无论发生的顺序是4个头是4个头),这引起您观察到4个头比0或0更有可能。 8个头。四头比较常见,因为制作四头的方法(TTHHTTHH或HHTTHHTT等)比其他数字(八头只有一个序列)要多。二项式定理给出了制作这些不同配置的多种方法。n − k
相反,顺序对于位很重要,因为每个位置都有一个关联的“权重”或“位置值”。二项式系数的一个属性是,也就是说,如果我们计算所有不同的有序序列,我们将得到。这直接将在二项式试验中有多少种不同的方法使个头与不同字节序列的数量联系起来。
此外,我们可以证明256个结果在独立性上的可能性相同。先前的试验对下次的试验没有影响,因此特定排序的概率通常为(因为独立事件的联合概率是其概率的乘积)。因为试验是公平的,所以,该表达式简化为。因为所有排序都具有相同的概率,所以我们在这些结果上具有统一的分布(通过二进制编码可以在中将其表示为整数)。
最后,我们可以将整个圆圈带回到抛硬币和二项式分布。我们知道0头的出现与4头的发生概率不同,这是因为对4头的出现进行排序的方式不同,并且这种排序的次数由二项式定理给出。因此,必须以某种方式对进行加权,特别是必须通过二项式系数对其进行加权。因此,这给了我们二项式分布的PMF,即。该表达式是PMF可能令人惊讶,特别是因为它并不立即表明它的总和为1。要验证,我们必须检查,但这只是二项式系数的问题:。
10001000
且10000001
是完全不同的数字。
所有序列具有相同的概率 = 1/256。认为随着问题的解释,更接近相等的0和1s的序列是错误的。应该清楚的是,我们得出1/256的原因是我们假定试验之间是独立的。这就是为什么我们将概率相乘,而一个审判的结果却对下一个审判没有影响。
Sycorax的答案是正确的,但似乎您还不清楚为什么。当您翻转8个硬币或考虑顺序生成8个随机位时,您的结果将是256种可能可能性之一。在您的情况下,这256种可能结果中的每一个都唯一地映射为整数,因此您得到的结果将是均匀分布的。
如果您不考虑顺序,例如仅考虑获得多少头或尾,那么只有9种可能的结果(0个头/ 8个尾巴-8个头/ 0个尾巴),并且它们的可能性不再相同。这样做的原因是,在256种可能的结果中,有1种翻转组合可以提供8个Heads / 0个尾巴(HHHHHHHH),还有8种组合可以提供7个Heads / 1个尾巴(a的尾巴分别位于8个位置顺序),但8C4 = 70种方法有4个头和4个尾巴。在掷硬币的情况下,这70个组合中的每一个都映射到4个Heads / 4 Tails,但是在二进制数问题中,那70个结果中的每一个都映射到一个唯一整数。
重述的问题是:为什么同时将8个随机二进制数字的组合数取为0到8个选定数字(例如1),而不是8个随机二进制数字的排列数。在本文的上下文中,0和1的随机选择是指每个数字彼此独立,因此数字不相关,并且;。
答案是:有两种不同的编码。1)排列的无损编码和2)组合的有损编码。
广告1)为了对数字进行无损编码,以便每个序列都是唯一的,我们可以将该数字视为二进制整数,其中在左边在随机0和1的二进制序列中向右移第数字。这样做是使每个排列都是唯一的,因为然后对每个随机数字进行位置编码。然后排列的总数为X 我我吨ħ 2 8 = 256。然后,巧合的是,可以将那些二进制数字转换为以10为基数的0到255,而不会失去唯一性,或者为此,人们可以使用任何其他无损编码(例如,无损压缩数据,十六进制,八进制)重写该数字。但是,这个问题本身就是一个二元问题。然后,每个排列都是同等可能性的,因为只有一种方式可以创建每个唯一的编码序列,并且我们假设在该字符串中的任何位置都可能出现1或0,因此每个排列都是同等可能性的。
广告2)如果仅考虑组合就放弃了无损编码,那么我们将得到一种有损编码,其中组合了结果并且丢失了信息。然后,我们正在查看数字系列,wlog为1的数字。,然后将其减少为,即获取的8个对象的组合数 ,对于这个不同的问题,正好4个1的概率比获得8个1的概率大70()倍,因为有70个概率相同可以产生4 1的排列。 Ç (8 ,Σ 8 我= 1 X 我)Σ 8 我= 1 X 我 Ç (8 ,4 )
注意:目前,以上答案是唯一包含两种编码的显式计算比较的答案,并且是唯一提及编码概念的答案。花了一段时间才把它弄对,这就是为什么这个答案在历史上一直被低估的原因。如果有任何未解决的投诉,请发表评论。
更新:自上次更新以来,我很高兴看到编码的概念已开始在其他答案中流行起来。为了明确显示当前问题,我附加了每种组合中有损编码的排列数量。
请注意,在每种组合编码过程中丢失的信息字节数等于该组合的置换数减去1 [,其中为1的数目],即针对此问题,每个组合从到,或。n 0 69 256 − 9 = 247
00000000
00000001
我想对顺序依赖与独立的概念进行一些扩展。
在通过翻转8个硬币来计算期望的正面数的问题中,我们对来自8个相同分布的值求和,每个分布都是伯努利分布[; B(1, 0.5) ;]
(换句话说,概率为0的概率为50%,概率为50%的概率为1)。总和的分布是二项式分布[; B(8, 0.5) ;]
,具有熟悉的驼峰形状,大部分概率集中在4上。
在计算由8个随机位组成的字节的期望值的问题中,每个位都有一个不同的值,该值对字节有贡献,因此我们要对8个不同分布的值求和。第一个是[; B(1, 0.5) ;]
,第二个是[; 2 B(1, 0.5) ;]
,第三个是[; 4 B(1, 0.5) ;]
,依此类推,直到第八个是[; 128 B(1, 0.5) ;]
。可以理解,这个总数的分布与第一个有很大不同。
如果您想证明后一种分布是均匀的,我想您可以归纳地进行—最低位的分布在假设条件下为1时是均匀的,因此您想证明一下,如果最低[; n ;]
位的分布在一定范围内是均匀的,[; 2^n - 1} ;]
那么[; n+1 ;]
st位的相加使最低[; n + 1 ;]
位的分布在范围内均匀,从而[; 2^{n+1} - 1 ;]
为所有正数提供了证明[; n ;]
。但是直观的方式可能恰恰相反。如果您从高位开始,然后一次选择一个值,直到低位,则每个位将可能结果的空间精确地分成两半,并且以相等的概率选择每一半,因此到底部,每个单独的值都必须具有相同的概率被选择。
只有一个序列带有八个零。有70个序列,其中包含四个零和四个1。
因此,如果将所有70%的0.39%概率加起来,则0的概率为0.39%,而15 [00001111]的概率为0.39%,而23 [00010111]的概率为0.39%,依此类推。您将获得27.3%,即拥有四个的概率。要使此结果有效,每个四四结果的概率不一定要高于0.39%。
考虑骰子
考虑一下掷骰子,这是不均匀分配的常见示例。为了进行数学计算,假设骰子从0到5而不是传统的1到6进行编号。分布不均匀的原因是您正在查看骰子总和,其中多个组合可以产生骰子。相同的总数(如{5,0},{0,5},{4、1}等)全部生成5。
但是,如果将骰子掷骰解释为以6为基数的2位随机数,则每种可能的骰子组合都是唯一的。{5,0}将为50(基数6),这将是5 *()+ 0 *()= 30(基数10)。{0,5}将是5(基数6),这将是5 *()= 5(基数10)。因此,您可以看到,可能的骰子掷骰有1到1的映射,以底数6为数字,而每个骰子两个骰子的总和则是从多对1的映射。6 0 6 0
正如@Sycorax和@Blacksteel指出的那样,这种差异实际上归结为顺序问题。
您选择的每个位都彼此独立。如果您首先考虑的是
和
这也适用于第二位,第三位,依此类推,这样最终得到的每个可能的位组合都会使您的字节具有 =发生唯一8位整数的机会。1