【概率题汇总】互联网公司概率面试题整理
参考博客
Bordery. 互联网公司 概率面试题整理. https://blog.csdn.net/bertdai/article/details/78070092
按照10道题目+答案的展示方式进行整理,便于浏览。
题目1-10
-
如何在半径为1的圆中随机选取一点?
-
一根木棒,截成三截,组成三角形的概率是多少?
-
抛一个六面的色子,连续抛直到抛到6为止,问期望的抛的次数是多少。
-
一个木桶里面有M个白球,每分钟从桶中随机取出一个球涂成红色(无论白或红都涂红)再放回,问将桶中球全部涂红的期望时间是多少?
-
你有一把宝剑。每使用一个宝石,有50%的概率会成功让宝剑升一级,50%的概率会失败。如果宝剑的级数大于等于5的话,那么失败会使得宝剑降1级。如果宝剑的级数小于5的话,失败没有效果。问题是:期望用多少个宝石可以让一把1级的宝剑升到9级?
-
已知有个rand7()的函数,返回1到7随机自然数,怎样利用这个rand7()构造rand10(),随机1~10。
-
已知有个randM()的函数,返回1到M随机自然数,怎样利用这个randM()构造randN(),随机1~N。
-
已知一随机发生器,产生0的概率是p,产生1的概率是1-p,现在要你构造一个发生器,使得它产生0和1的概率均为1/2。
-
已知一随机发生器,产生的数字的分布不清楚,现在要你构造一个发生器,使得它产生0和1的概率均为1/2。
-
已知一随机发生器,产生0的概率是p,产生1的概率是1-p,构造一个发生器,使得它构造1、2、3的概率均为1/3;…。更一般地,构造一个发生器,使得它构造1、2、3、…n的概率均为1/n。
答案
-
方法一:在\(x = [-1, 1]\)和\(y = [-1, 1]\)围成的正方形中随机取一点,若落在圆内则为所求的点;若不在圆内,则重新随机直到选到了为止。
方法二:从[0, 2*pi)随机选取一个角度,再在这个方向的半径上随机选取一个点。但半径上的点不能均匀选取,选取的概率要和离圆心的距离成正比,这样才能保证随机点在圆内是均匀分布的。 -
三条边分别为\(x\)、\(y\)和\(1-x-y\),其满足\(0<x<1\),\(0<y<1\),\(0<1-x-y<1\)的条件,然后画图即可得到概率为1/2。
-
抛一次出现6的概率为$ p = \frac{1}{6}\(,\)P(k) = \frac{1}{6} ^ {k-1} * \frac{5}{6}\(,满足几何分布,期望为\)E = \frac{1}{p} = 6$。
题目11-20
-
一个桶里面有白球、黑球各100个,现在按下述规则取球:
i 、每次从桶里面拿出来两个球;
ii、如果取出的是两个同色的求,就再放入一个黑球;
iii、如果取出的是两个异色的求,就再放入一个白球。
问:最后桶里面只剩下一个黑球的概率是多少? -
10个人出去玩,集合时间有10分钟,每个人都在该时间内到达,概率均匀分布,彼此独立,那么最后一个人最有可能到达的时间是?
-
已知随机数生成函数f(),返回0的概率是60%,返回1的概率是40%。根据f()求随机数函数g(),使返回0和1的概率是50%,不能用已有的随机生成库函数。
-
100个人排队,每个人只能看到自己之前的人的帽子的颜色(假设只有黑白两色),每个人都得猜自己帽子的颜色,只能说一次,说错就死掉,别人可以听到之前的人的答案以及是否死掉。请问用什么策略说死掉的人最少。
-
54张牌,平均分成三堆,大小王在同一堆的概率?
-
买饮料,三个瓶盖可以换一瓶,请问要买100瓶饮料,最少需要买多少瓶?
-
有一个很大很大的输入流,大到没有存储器可以将其存储下来,而且只输入一次,如何从这个输入流中等概率随机取得m个记录。
-
在一条高速公路上,在30分钟内看到一辆汽车的可能性是0.95,那么在10分钟内看到一辆车的概率是多少?(假设过车的概率是恒定的)
答案
-
黑球=0,白球=1,那么题目描述的就是数组内部的亦或运算,结果为0,也就是说只剩下一个黑球的概率是100%。
-
最后一个人在第n分钟到达的概率为:$ (1/10) \times (n / 10)^9 $,当n取10的时候概率最大。
-
生成两个数,01和10的概率是相等的,用这两个直接映射0和1,如果是00或者11就直接丢弃继续实验。
-
最少能活99个人。
最后一个人可以看到前面全部的信息,从最后一个人开始,若前面为【奇黑偶白】则报黑(自己有一半的存活概率),若前面【偶黑奇白】则报白(自己有一半的存活概率);
对于倒数第2人来说,以最后1个人报黑为例,若看到【奇黑奇白】则自己一定为白也报白,若看到【偶黑偶白】则自己一定为黑也报黑;
对于倒数第3人来说,以最后1个人报黑倒2报黑为例,若看到【奇黑偶白】则自己一定为白也报白,若看到【偶黑偶白】则自己一定为黑也报黑;如此下去。 -
$ P(大小王在同一堆) = 3 * P(大王在第i堆|小王在第i堆) * P(小王在第i堆) = 3 * 17/53 * 1/3$。
-
三叉树结构,\(3^0+3^1+...+3^n>100\),解得\(n>4\),可见第3层的一部分和第四层后一部分需要自己买,第2层全部以及第3层前一部分都是可以兑换得到。设第四层有x个,则有
$x+x/3+27-x/3 = 100 - (30+...+32) $
解得x=60,所以总共买 \(x+3^3-x/3 = 67\)。
还有一个思路:100个人,3人做一组,共33组,余1人,也即100/333, 100%31,3瓶水换一瓶,也即一组需要买两瓶(需要有一个作为启动),所以结论很明显了,100/33*2+1=67 -
对每个数据计算一次rand[0,1),维护一个m大小的小根堆,最后把前m大的数据作为记录。
-
陷阱在于不是30分钟内的前10分钟,而是任意10分钟。设10分钟内看不到车的概率为p,则30分钟内看不到车概率为 \(p^3\),那么有
$p^3 = 1 - 0.95 $
最后求 \(1-p\) 即可。答案是63.16%。