-------------------------------------------------------------------------------------------算法
1,一根木棒,截成三截,组成三角形的几率是多少?数组
2,抛一个六面的色子,连续抛直到抛到6为止,问指望的抛的次数是多少?设计
3,一个木桶里面有M个白球,每分钟从桶中随机取出一个球涂成红色(不管白或红都涂红)再放回,问将桶中球所有涂红的指望时间是多少?blog
4,你有一把宝剑。每使用一个宝石,有50%的几率会成功让宝剑升一级,50%的几率会失败。若是宝剑的级数大于等于5的话,那么失败会使得宝剑降1级。若是宝剑的级数小于5的话,失败没有效果。问题是:指望用多少个宝石可让一把1级的宝剑升到9级?事件
5,一个黑盒里是一个图,结构未知,只知道点的个数是n,边的个数是m,写公式给出两个点相连的几率。it
6,54张牌,平均分红三堆,大小王在同一堆的几率?io
Solutions:变量
1, 0.25随机数
假设总体长度为1(由于这个值不影响几率的计算,因此能够这样假设),第一段的长度是x,第二段为y,第三段为1-x-y。方法
x,y值要想成为木棍切出来的长度必需要知足的条件为 0<x<1, 0<y<1,0<x+y<1,这些点构成了下图1中红色的部分。
而这三段要构成三角形还必须知足:
x+y>1-x-y => x+y>0.5
x+1-x-y>y => y<0.5;
y+1-x-y>y => x<0.5
这些点构成图2中黄色区域。黄色区域与红色区域面积的比值就是,全部切割中能构成三角形的切割方式和全部切割方式的比值。也就是题目的答案。
2,这种一种几率模型?叫啥来着
由于每次抛到6的几率相等,都是1/6,因而指望的次数就是1/(1/6)=6次。
3,一个木桶里面有M个白球,每分钟从桶中随机取出一个球涂成红色(不管白或红都涂红)再放回,问将桶中球所有涂红的指望时间是多少?
这题目和上面的用到了一样的几率模型。
在M个球中取到第1个未着色的取得次数指望是:1
在M个球中取到第2个未着色的取得次数指望是:1/(M-1/M) ---- 这就是用题目2的模型得出的指望,就像抛色子(只有两色),第一个着色的点数为1,其它全部未着色的是点数为2。
在M个球中取到第3个未着色的取得次数指望是:1/(M-2/M)
...
在M个球中取到第M个未做色的求所须要的取得次数的指望是:1/(1/M)
总体次数的指望就是 1+ 1/(M-1/M)+1/(M-2/M)+...+M
4,
用a[i]表示从第i-1级升到第i级指望使用的宝石数量。
当i<=5时,由于不会降级,则指望的数量均为2,即a[2] = a[3] = a[4] = a[5] = 2
当i>5时,由于会降级,成功时一个宝石就够了,不成功时须要倒退一级,须要先使用a[i-1]个宝石先回到i-1级,再使用a[i]个宝石升到第i级,即
a[i] = 1 * 1/2 + (1 + a[i-1] + a[i]) * 1/2
即 a[i] = a[i-1] + 2
可知,a[6]= 4, a[7] = 6, a[8] = 8, a[9] = 10
则1级到9级须要的宝石数为 a[2]+…+a[9] = 36。
5,(only my solution, maybe it's not right...)
n个顶点能够有N=n*(n-1)/2条边,因此这个问题与问题:进行N次实验,每次实验的结果符合伯努利分布,成功的几率为p(未知),N次实验总的成功(平均)次数为m,那么p是多少?是相同的。设随机变量A表示N次伯努利实验成功的次数,Ai表示第i次实验的结果,P(Ai=0)=p,那么A=A1+A2+... 。m=E(A)=E(A1)+E(A2)+.. 。并且E(Ai)=p,因此很容易就求出p来了。
6,
在高中时,这种题过小菜了!!惋惜我已经高中过去七八年了~~~
随机事件A: 小王和大王在同一堆
随机事件Ai:小王和大王在第i堆, i=1,2,3 。 A1,A2和A3互斥
P(A)=P(A1+A2+A3)=P(A1)+P(A2)+P(A3)=P(大王在第一堆,小王在第一堆)+P(大王在第二堆,小王在第二堆)+P(大王在第三堆,小王在第三堆)
=P(大王在第一堆|小王在第一堆)P(小王在第一堆)+P(大王在第二堆|小王在第二堆)P(小王在第二堆)+P(大王在第三堆|小王在第三堆)P(小王在第三堆)
=3*(17/53)*(1/3)
=17/53
----------------------------------------------------------------------------------------------------
1, 给你一个数组,设计一个既高效又公平的方法随机打乱这个数组
2,有一苹果,两我的抛硬币来决定谁吃这个苹果,先抛到正面者吃。问先抛这吃到苹果的几率是多少?
3,快速生成10亿个不重复的18位随机数的算法(从n个数中生成m个不重复的随机数)
Solution1:
1,对于A[i],i=0,1,2,...N,随机在数组A[i,i+1,..N]中挑选一个数字交换到A[i]。
为何这么作会随机?
证实算法随机,只需证实每一个数字分配到每一个位置的几率是相等的。
易得,数组0-N位置的任意一个数字到位置0的几率都是1/n
到位置1的几率是(1-1/n)*(1/(n-1))=1/n
解释:P(到位置1)=P(第一次调用随机算法的时候没交换到位置0)P(第二次到位置1|第一次调用随机算法的时候没交换到位置0)
到位置2的几率是(1-1/n)(1-1/(n-1))(1/n-2)=1/n
...
2,A表示随机事件先抛的人吃到苹果,那么
i表示先抛的人一共抛了的次数,上面的式子能够求出,P(A)=2/3
3,