为什么在(0,255)上均匀生成8个随机位?


35

我正在生成8个随机位(0或1)并将它们连接在一起以形成8位数字。一个简单的Python模拟在离散集[0,255]上产生均匀分布。

我试图证明为什么这在我的脑海中有意义。如果我将其与掷8个硬币进行比较,那么期望值会不会在4头/ 4头左右?因此对我来说,我的结果应该反映出范围中间的峰值是有意义的。换句话说,为什么8个零或8个数的序列似乎与4和4或5和3等的序列一样相等?我在这里想念什么?


17
[0,255]范围内的统一随机数中的位分布的期望值也在 4 1's / 4 0's附近。
user253751'17

2
仅仅因为您对0到255的每个数字赋予相等的权重,并不意味着函数结果“ 1到0的计数之间的差异”也将发生一次且仅发生一次。我可以对组织中的每个人都给予同等的重视。并不意味着他们的年龄将被平均分配。有些年龄可能比其他年龄更普遍。但是一个人并不比其他任何人都普遍。
布拉德·托马斯

2
这样想吧...您的第一个随机位将确定位7的值,1等于128,0等于0。在256个数字中,如果数字为0-127,则您有50%的机会位是0,如果位是1,则是128-255。假设它是0,则下一位确定结果是0-63还是64-127。要求全部8位形成256个相等可能的结果之一。您正在考虑像用骰子那样增加总数。获得4 1s和4 0s的几率比获得8 1s高,但是可以通过更多的方式安排它们来获得不同的结果。
杰森·古玛

2
假设您滚动了一个标有0到255的256面公平模子。您期望获得均匀的分布。现在,假设您重新标记模具,以使一侧为0,8侧为1,28侧为2,依此类推;等等。现在,每侧都标有以前在该侧的编号中的接通位数。你又滚死了;为什么要期望数字从0到8均匀分布?
埃里克·利珀特

如果分发是这样进行的,那么只有连续出现7个红字后,我才能在轮盘赌上赚很多钱。7和1的可能性是8和0的8倍!(忽略0,但是这种偏斜远远大于0和00偏斜)
Cruncher

Answers:


61

TL; DR: 硬币与硬币之间的鲜明对比是,对于硬币,您将忽略结果的顺序。HHHHTTTT与TTTTHHHH相同(都具有4个头和4个尾巴)。但是以位为单位,您关心顺序(因为必须给位位置赋予“权重”才能获得256个结果),因此11110000与00001111不同。


更长一点的解释: 如果我们对问题的框架更加正式,则可以更精确地统一这些概念。假设一个实验是八项试验的序列,结果二分,“成功”概率为0.5,“失败”概率为0.5,并且这些试验是独立的。通常,我将其称为成功,总试验和失败,成功的概率为。n n k pknnkp

  • 在硬币示例中,结果“个头,尾巴”忽略了试验的顺序(无论发生的顺序是4个头是4个头),这引起您观察到4个头比0或0更有可能。 8个头。四头比较常见,因为制作四头的方法(TTHHTTHH或HHTTHHTT等)比其他数字(八头只有一个序列)要多。二项式定理给出了制作这些不同配置的多种方法。n kknk

  • 相反,顺序对于位很重要,因为每个位置都有一个关联的“权重”或“位置值”。二项式系数的一个属性是,也就是说,如果我们计算所有不同的有序序列,我们将得到。这直接将在二项式试验中有多少种不同的方法使个头与不同字节序列的数量联系起来。2n=k=0n(nk)28=256kn

  • 此外,我们可以证明256个结果在独立性上的可能性相同。先前的试验对下次的试验没有影响,因此特定排序的概率通常为(因为独立事件的联合概率是其概率的乘积)。因为试验是公平的,所以,该表达式简化为。因为所有排序都具有相同的概率,所以我们在这些结果上具有统一的分布(通过二进制编码可以在中将其表示为整数)。pk(1p)nkP(success)=P(fail)=p=0.5P(any ordering)=0.58=1256[0,255]

  • 最后,我们可以将整个圆圈带回到抛硬币和二项式分布。我们知道0头的出现与4头的发生概率不同,这是因为对4头的出现进行排序的方式不同,并且这种排序的次数由二项式定理给出。因此,必须以某种方式对进行加权,特别是必须通过二项式系数对其进行加权。因此,这给了我们二项式分布的PMF,即。该表达式是PMF可能令人惊讶,特别是因为它并不立即表明它的总和为1。要验证,我们必须检查P(4 heads)P(k successes)=(nk)pk(1p)nkk=0n(nk)pk(1p)nk=1,但这只是二项式系数的问题:。1=1n=(p+1p)n=k=0n(nk)pk(1p)nk


这是有道理的……但是,难道我们不希望15、30、60、120和240的权重比0或255高吗?

1
我想我现在明白了。我将接受此答案,因为我认为这里的关键是顺序,您要引起注意。谢谢

还有一个注意事项-以我的硬币示例为例,这实际上是同时翻转8个硬币,而不是8次翻转硬币的尝试。其中掩盖了我的困惑。

2
“基础等级算术”中的“位置值”的概念在此尤其适用;使用十进制类比时,人们认为1000100010000001是完全不同的数字。
JM不是统计学家

17

为什么8个零或8个数的序列似乎与4和4或5和3等的序列一样可能

明显的悖论可以归纳为两个命题,这似乎是矛盾的:

  1. 序列 (八个零)与序列(四个零,四个一)同等可能。(通常:所有序列具有相同的概率,而不管它们有多少个零/一。)s1:00000000s2:0101010128

  2. 事件“:序列具有四个零 ” 比事件“:序列具有八个零更可能(实际上是概率的倍)。e170e2

这些主张都是正确的。因为事件包含许多序列。e1


8

所有序列具有相同的概率 = 1/256。认为随着问题的解释,更接近相等的0和1s的序列是错误的。应该清楚的是,我们得出1/256的原因是我们假定试验之间是独立的。这就是为什么我们将概率相乘,而一个审判的结果却对下一个审判没有影响。2828


2
如果问题不包括“为什么”一词,那将是可以的,如果简短,请回答。实际上,您只是在问题中重复了一个给定条件,而没有给出任何解释。
Tin Man

1
其实...这个答案实际上是错误的,请参阅leonbloy的答案。
Tin Man

3
@Walt这是不正确的。语言的微妙之处。任何给定的序列都不太可能,因为它在0和1之间的不平衡程度较小。只是有更多这样的序列
hobbs

4
有人同意我吗?如果0的概率为1/2,而1的概率为1/2,且序列中的一个项与下一个无关,则长度为8的给定序列的概率为。也是如此8的任何其他序列1/28=1/256
迈克尔R. Chernick

4
@Michael我完全同意,很高兴看到-最后!-对事情的本质:独立是一个明确的呼吁 如果您要在其中添加评论,我们将很乐意为您提供答复。
Whuber

7

3位示例(通常一个示例更具说明性)

我将自然数0到7写成:

  • 10的数字
  • 2的数字(即位序列)
  • 以2为基数表示的一系列硬币翻转(1表示正面翻转,0表示背面翻转)。

Base 10Base 2 (with 3 bits)Implied Coin Flip SeriesHeadsTails0000TTT031001TTH122010THT123011THH214100HTT125101HTH216110HHT217111HHH30

选择从0到7的自然数具有相等的概率等效于选择右边具有相等概率的硬币翻转系列之一。

因此,如果您从整数0-7的均匀分布中选择一个数字,则有机会选择3个头,机会选择2个头,机会选择1个头,机会选择0个头。 318 338 13818


3

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个结果中的每一个都映射到一个唯一整数。


2

重述的问题是:为什么同时将8个随机二进制数字的组合数取为0到8个选定数字(例如1),而不是8个随机二进制数字的排列数。在本文的上下文中,0和1的随机选择是指每个数字彼此独立,因此数字不相关,并且;。p(0)=p(1)=12

答案是:有两种不同的编码。1)排列的无损编码和2)组合的有损编码。

广告1)为了对数字进行无损编码,以便每个序列都是唯一的,我们可以将该数字视为二进制整数,其中在左边在随机0和1的二进制序列中向右移第数字。这样做是使每个排列都是唯一的,因为然后对每个随机数字进行位置编码。然后排列的总数为X ħ 2 8 = 256i=182i1XiXiith28=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 i=1820XiC(8,i=18Xi)i=18XiC(8,4)

注意:目前,以上答案是唯一包含两种编码的显式计算比较的答案,并且是唯一提及编码概念的答案。花了一段时间才把它弄对,这就是为什么这个答案在历史上一直被低估的原因。如果有任何未解决的投诉,请发表评论。

更新:自上次更新以来,我很高兴看到编码的概念已开始在其他答案中流行起来。为了明确显示当前问题,我附加了每种组合中有损编码的排列数量。在此处输入图片说明

请注意,在每种组合编码过程中丢失的信息字节数等于该组合的置换数减去1 [,其中为1的数目],即针对此问题,每个组合从到,或。n 0 69 256 9 = 247C(8,n)1n0692569=247


2
使用传统的方式来命名数字-通过省略所有对前面的零的引用-可能会混淆此解释。您不认为通过将为,将(您无意中省略)设为,以此类推,情况会变得更加清晰吗?1000000000100000001
ub

16
坦白地说,这一切都是正确的,但没有解决这个问题。您已经很好地展示了八个有序位如何表示范围内的数字,但是还没有解释为什么随机选择这些位会产生均匀的分布(这很简单,显然解释起来很费力。微妙)。
dmckee '17

9
出于8个(独立)均匀分布在[000,999]上的3个随机数字的相同原因,说8个(独立)随机位是否更简单?关于计算机如何/为什么使用二进制和分数基数的附带说法完全没有必要,也没有关系。我的意思是,二进制仅使用符号0和1的事实只是base 2的固有属性...无需对此进行解释。如果您想保留这种解释,那么解释基础的一般工作方式可能会更有用,但是仍然离题不远。
Blackhawk

3
我很高兴看到这个答案有了很大的改善。但是,我很难看到以10为基数的表示法与这个问题有什么关系(以3为基数或以17为基数也不能正常工作吗?),而且我看不到8位的特殊之处,而这又不是推广到任何有限数量的位。这表明此答案中的大多数考虑都是切线的或无关紧要的。
ub

3
我还要感谢您对问题中的混乱进行了恰当的描述:“有损”和“无损”编码。这是令人难忘的,与其他观点略有不同,很有见识,并且有可能很快消除这种困惑。
whuber

1

我想对顺序依赖与独立的概念进行一些扩展。

在通过翻转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 ;]。但是直观的方式可能恰恰相反。如果您从高位开始,然后一次选择一个值,直到低位,则每个位将可能结果的空间精确地分成两半,并且以相等的概率选择每一半,因此到底部,每个单独的值都必须具有相同的概率被选择。


它不是连续的制服。该位是0或1,并且两者之间没有任何关系。
Michael R. Chernick

@MichaelChernick当然,我们在这里只处理离散分布。
hobbs

OP表示这些位仅为1或0,且两者之间没有任何关系。
Michael R. Chernick

1
@MichaelChernick正确。
hobbs

1

如果对每个位进行二进制搜索,则每个8位数字都需要相同的步数,从0000 0000到1111 1111,它们的长度均为8位。在二分查找的每个步骤中,双方都有50/50的出现机会,因此最后,由于每个数字都具有相同的深度和概率,没有任何实际选择,因此每个数字都必须具有相同的权重。因此,即使每个单独的位由掷硬币决定,分布也必须是均匀的。

但是,数字的数字总和不是均匀的,并且在分配上等同于扔掉8个硬币。


1

只有一个序列带有八个零。有70个序列,其中包含四个零和四个1。

因此,如果将所有70%的0.39%概率加起来,则0的概率为0.39%,而15 [00001111]的概率为0.39%,而23 [00010111]的概率为0.39%,依此类推。您将获得27.3%,即拥有四个的概率。要使此结果有效,每个四四结果的概率不一定要高于0.39%。


这不会改变所有256个序列均具有同等概率的事实。
Michael R. Chernick

@MichaelChernick我没说过,我明确说过他们都有0.39%的概率,我是在回答OP的假设。
Random832 '17

你是对的。这是表达我的回答的另一种方式。其他一些答案是错误的。
Michael R. Chernick

1

考虑骰子

考虑一下掷骰子,这是不均匀分配的常见示例。为了进行数学计算,假设骰子从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 0616060

正如@Sycorax和@Blacksteel指出的那样,这种差异实际上归结为顺序问题。


0

您选择的每个位都彼此独立。如果您首先考虑的是

  • 50%的概率是1

  • 50%的概率将为0。

这也适用于第二位,第三位,依此类推,这样最终得到的每个可能的位组合都会使您的字节具有 =发生唯一8位整数的机会。1(12)81256


所有这些陈述都是正确的,但这并不能说明为什么当将结果定义为正面和反面的数目时,抛硬币也是公平和独立的,为什么只有9个不同的结果。
恢复莫妮卡

这只是在选择结果后将结果放入有序系统中的结果。即使将随机位放在字节上的随机位置中,也可以实现相同的分布。通过构造问题的方式来寻找抛弃特定正面和反面组合(例如HHTHTTTH)的机会,您还会在抛硬币时得到相同的分布。您将有1/256的机会获得每次执行8次抛硬币的确切抛硬币顺序。
Ahemone

这些都是包含在答案本身中的好信息。我的评论与您所说的话并没有什么问题,只是省略了OP造成混乱的直接地址:位与硬币翻转之间的关系。
恢复莫妮卡

我还应该说,为了达到OP的期望值4,他们正在尝试查找给定字节中n个1或n个0的概率。对问题的这种构架将给出他们所期望的二项式分布,而不是找到从那些随机位中获得某个值的概率的均匀分布。
Ahemone
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.