引自:https://www.cnblogs.com/lvjincheng/p/11361461.html
题目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]x=[−1,1]和y=[−1,1]y=[−1,1]围成的正方形中随机取一点,若落在圆内则为所求的点;若不在圆内,则重新随机直到选到了为止。
方法二:从[0, 2*pi)随机选取一个角度,再在这个方向的半径上随机选取一个点。但半径上的点不能均匀选取,选取的概率要和离圆心的距离成正比,这样才能保证随机点在圆内是均匀分布的。 -
三条边分别为xx、yy和1−x−y1−x−y,其满足0<x<10<x<1,0<y<10<y<1,0<1−x−y<10<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)×(n/10)9(1/10)×(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/3P(大小王在同一堆)=3∗P(大王在第i堆|小王在第i堆)∗P(小王在第i堆)=3∗17/53∗1/3。
-
三叉树结构,30+31+...+3n>10030+31+...+3n>100,解得n>4n>4,可见第3层的一部分和第四层后一部分需要自己买,第2层全部以及第3层前一部分都是可以兑换得到。设第四层有x个,则有
x+x/3+27−x/3=100−(30+...+32)x+x/3+27−x/3=100−(30+...+32)
解得x=60,所以总共买 x+33−x/3=67x+33−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分钟内看不到车概率为 p3p3,那么有
p3=1−0.95p3=1−0.95
最后求 1−p1−p 即可。答案是63.16%。