从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)=          \huge \frac{\sum_{k=odd}^{n}\binom{n}{k}\cdot \sum_{k}^{m}\binom{m}{k}}{2^{m+n}}(用的csdn的公式写的,看的不明白可以下面有进一步的推到图)

 

因为,一列数据求异或时,0其实不起作用的,主要还是看1的个数,相信计算机的童鞋都能想明白。偶数个1 异或记过为0,基数个1 异或为结果为1.

所以 

有了这概率,那期望岂不是很简单,反正已经将十进制转为了2进制,那就用2进制的方式去计算。

从1,2,3,......,98,99,2015这100个数中任意选择 若干个数(可能为0个数)求异或,试求异或的期望值。_第1张图片

所以,结果就为 1023.5

 

接下来,我们在做一道变式题,题目基本相似。

题干:从1,2,3,......,98,99,1024这100个数中任意选择 若干个数(可能为0个数)求异或,试求异或的期望值。

*注意这是1024了哦。

大家可以自己先自己动手算一算。

从1,2,3,......,98,99,2015这100个数中任意选择 若干个数(可能为0个数)求异或,试求异或的期望值。_第2张图片

 

希望我讲明白了。如果有任何问题,请留言或邮箱告知我哦。感谢!

邮箱[email protected]

 

你可能感兴趣的:(机器学习——数学基础)