从1,2,3,......,98,99,2015这100个数中任意选择 若干个数(可能为0个数)求异或,试求异或的期望值。
题干:从1,2,3,......,98,99,2015这100个数中任意选择 若干个数(可能为0个数)求异或,试求异或的期望值。
来源:阿里笔试
需要基础知识回顾:
解析:
步骤一:
首先我们来分析 2015这个值,
在1,2,3,...,98,99这99个数中任意选择若干个数的选法一共有
种,
而在1,2,3,...,98,99,2015这100个数中任意选择若干个数的选法一共有
种,
因此在全部的选法中,出现2015的概率为(2^100-2^99)/2^100=0.5。
步骤二:
分析1~99 和2015这些数的特点
(2015) = 111 1101 1111
(99) = 000 0110 0011
我们发现:前4位取0或1,完全是由2015这个数决定的。
因此,设,每一位的取值用Xi表示
前4位 中每一位 P(Xi = 1)= P(出现2015)= 1/2
步骤三:
分析除前四位的其他位。
设第 i 位共有n个1,m个0
采样取到1的个数为K,
P(Xi = 1)= (用的****的公式写的,看的不明白可以下面有进一步的推到图)
因为,一列数据求异或时,0其实不起作用的,主要还是看1的个数,相信计算机的童鞋都能想明白。偶数个1 异或记过为0,基数个1 异或为结果为1.
所以
有了这概率,那期望岂不是很简单,反正已经将十进制转为了2进制,那就用2进制的方式去计算。
所以,结果就为 1023.5
接下来,我们在做一道变式题,题目基本相似。
题干:从1,2,3,......,98,99,1024这100个数中任意选择 若干个数(可能为0个数)求异或,试求异或的期望值。
*注意这是1024了哦。
大家可以自己先自己动手算一算。
希望我讲明白了。如果有任何问题,请留言或邮箱告知我哦。感谢!