概率题


一. 几何


1. 在半径为1的圆中随机选取一点

  • 方法1: 在x轴[-1,1],y轴[-1,1]的正方形随机选取一点,如果此点在圆内,则即为所求的点。如果不在圆内,则重新随机直到选到了为止。
  • 方法2: 从[0, 2*pi)随机选取一个角度,再在这个方向的半径上随机选取一个点。但半径上的点不能均匀选取,选取的概率要和离圆心的距离成正比,这样才能保证随机点在圆内是均匀分布的。

二. 概率


1. 一根木棒,截成三截,组成三角形的概率是多少?

  • 设第一段截 x,第二段截 y,第三段 1 - x - y。考虑所有可能的截法。
  • 可能的截法中必须保证三条边都是正数且小于原来边长,则有0 < x < 1,0 < y < 1,0 < 1 - x - y < 1,画图可知,(x,y)必须在单位正方形的左下角的半个直角三角形里,面积为1/2
  • 然后考虑能形成三角形的截法。首先要满足刚才的三个条件0 < x < 1,0 < y < 1,0 < 1 - x - y < 1,然后必须符合三角形的边的要求,即两边之和大于第三边,x + y > 1 - x - y,x + 1 - x - y > y,y + 1 - x - y > x,化简即得0 < x < 1/2,0 < y < 1/2,1/2 < x + y < 1画图可知,此时(x,y)必须在边长为 1/2 的三角形的右上角的半个直角三角形里,面积为1/8。于是最终概率为 (1/8) / (1/2) = 1/4

2. 有一苹果,两个人抛硬币来决定谁吃这个苹果,先抛到正面者吃。问先抛者吃到苹果的概率是多少?

  • 给所有的抛硬币操作从1开始编号,显然先手者只可能在奇数 (1,3,5,7…) 次抛硬币得到苹果,而后手只可能在偶数次(2,4,6,8…) 抛硬币得到苹果。
  • 设先手者得到苹果的概率为 p,第1次抛硬币得到苹果的概率为 1/2,在第3次 (3,5,7…)以后得到苹果的概率为 p/4(这是因为这种只有在第1次和第2次抛硬币都没有抛到正面(概率为1/4=1/2*1/2)的时候才有可能发生,而且此时先手者在此面临和开始相同的局面)。
  • 所以可以列出等式p=1/2+p/4,解得p=2/3

三. 期望


1. 抛一个六面的色子,连续抛直到抛到6为止,问期望的抛的次数是多少。

  • 因为每次抛到6的概率相等,都是1/6,于是期望的次数就是1/(1/6)=6次
  • 假设期望的次数为E。考虑第一次抛,如果已经抛到6了(概率为1/6),那么就不用再抛了。如果没抛到6(概率为5/6),那么还需要继续抛,可是还要抛多少次呢?显然,现在开始知道抛到6的次数仍然是E,但是刚刚已经抛了一次了于是可以得到这个等式E = 1 * 1/6 + (1 + E) * 5/6,解得 E = 6。即期望的次数为6次。

2. 一个木桶里面有 m个白球,每分钟从桶中随机取出一个球涂成红色(无论白或红都涂红)再放回,问将桶中球全部涂红的期望时间是多少?

  • 令桶中有i个红球后再把全部球涂红的期望时间为 a[i],此时再取出一个球,如果是红色的(概率为i/m),则直接放回,且剩余的期望时间仍是 a[i]
  • 如果是白色的(概率为1-i/m),则涂红后放回,剩余的期望时间为a[i+1],则a[i] = (1 + a[i]) * i/m + (1 + a[i+1]) * (1 – i/m)即   a[i] = a[i+1] + m/(m-i)显然,有a[m] = 0可以解得 a[0] = m/m + m/(m-1) + … + m/1 + 0

3. 你有一把宝剑。每使用一个宝石,有 50% 的概率会成功让宝剑升一级,50% 的概率会失败。如果宝剑的级数大于等于5的话,那么失败会使得宝剑降1级。如果宝剑的级数小于5的话,失败没有效果。问题是:期望用多少个宝石可以让一把1级的宝剑升到9级?

  • 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/2a[i] = a[i-1] + 2 可知,a[6]= 4, a[7] = 6, a[8] = 8, a[9] = 10则1级到9级需要的宝石数为 a[2]+…+a[9] = 36

4. 平均要取多少个(0,1)中的随机数才能让和超过 1

e 次, 其中 e 是自然对数的底

  • 首先思考几个简单的问题:
    1. 任取 201 之间的实数, 它们的和小于 1 的概率是多少?
      满足 x+y<1 的点 (x, y) 占据了正方形 (0, 1) * (0, 1) 的一半面积, 因此这两个实数之和小于1的概率为 1/2=1/2!
    2. 任取 301 之间的实数, 它们的和小于 1 的概率是多少?
      3 个数之和小于 1 的概率是 1/6, 它是平面 x+y+z=1 在单位立方体中截得的一个三棱锥, 这个 1/6 可以例用截面与底面的相似比关系, 通过简单的积分求得:
      \int_{0}^{1} \frac{1}{2} x^2 \, dx = \frac{1}{6} = \frac{1}{3!}
    3. 401之间的随机数的和小于 1 的概率就等于四维超立方体一角的"体积", 它的"底面"是一个体积为 1/6 的三棱锥, 在第四维上对其进行积分便可得到其"体积":
      \int_{0}^{1} \frac{1}{6} x^3 \, dx = \frac{1}{24} = \frac{1}{4!}
    4. 以此类推, n01之间的随机数的和小于 1 的概率为 1/n!, 反过来 n01之间的随机数的和大于 1 的概率为 1 - 1/n!
  • 加到第 n 个数才刚好超过 1 的概率:
    (1-\frac{1}{n!}) - (1-\frac{1}{(n-1)!}) = \frac{n-1}{n!}
  • 因此, 要想让和超过 1, 需要累加的期望次数为:
    \sum_{n=2}^{+\infty}{n \ast \frac{n-1}{n!}}= \sum_{n=0}^{+\infty}{\frac{1}{n!}} = e

5. 有一个随机数生成器,不断生成 [0,1] 的浮点数 n 次,把这 n 个数放入到一个数组中,但是这个数组里面的值你都看不到是个黑箱,要求用概率的角度分析出第 k 小的数是什么?

  • 不妨考虑引入第 n+1 个随机变量,由于分布是均匀的,且取值是[0,1],所以可以认为第 k 小的变量的期望等于第 n+1 个变量小于等于第 k 小的变量的概率。
  • 那么问题就变为了如何求这个概率,从统计方案数出发。
  • 它们的大小关系一共有 (n+1)! 种,而 n+1 个变量小于等于第 k 个变量的方案数一共有 k×n!,因为第 n+1 个变量一共有 k 个位置可以插入。所以概率为 k/(n+1),也就是第 k 小的期望。
  • 其他解法-概率密度

四. 随机数产生


1. 已知有个 rand7() 的函数,返回1到7随机自然数,怎样利用这个 rand7()构造 rand10(),随机 1~10

  • 产生随机数的主要原则是每个数出现的概率是相等的,如果可以得到一组等概率出现的数字,那么就可以从中找到映射为 1~10 的方法。
  • rand7()返回 1~7 的自然数,构造新的函数 (rand7()-1)*7 + rand7(),这个函数会随机产生 1~49 的自然数。原因是 1~49 中的每个数只有唯一的第一个 rand7() 的值和第二个 rand7() 的值表示,于是它们出现的概率是相等。
  • 但是这里的数字太多,可以丢弃 41~49 的数字,把 1~40 的数字分成10组,每组映射成 1~10 中的一个,于是可以得到随机的结果。
  • 具体方法是,利用 (rand7()-1)*7 + rand7() 产生随机数 x,如果大于40则继续随机直到小于等于40为止,如果小于等于40,则产生的随机数为 (x-1)/4+1

2. 已知一随机发生器,产生0的概率是 p,产生1的概率是 1-p,现在要你构造一个发生器,使得它产生0和1的概率均为 1/2

  • 考虑连续产生两个随机数,结果只有四种可能:00、01、10、11,其中产生01和产生10的概率是相等的,均为p*(1-p),于是可以利用这个概率相等的特性等概率地产生01随机数。比如把01映射为0,10映射为1。
  • 于是整个方案就是:产生两个随机数,如果结果是00或11就丢弃重来,如果结果是01则产生0,结果是10则产生1。

3. 已知一随机发生器,产生的数字的分布不清楚,现在要你构造一个发生器,使得它产生0和1的概率均为 1/2

  • 考虑连续产生两个随机数 a、b,结果有三种情况a==b,a>b,a<b
  • 其中由于a和b的对称性,a>ba<b 出现的概率是相等的,于是可以利用这个概率相等的特性等概率地产生01随机数。

4. 已知一随机发生器,产生0的概率是 p,产生1的概率是 1-p,构造一个发生器,使得它构造 1、2、3 的概率均为 1/3; 更一般地,构造一个发生器,使得它构造 1、2、3、…n 的概率均为 1/n

  • 要从n 个数中等概率地产生一个随机数,关键是要找到 n 个或更多个出现概率相等的事件,然后我们重复随机地产生事件,如果是跟这 n 个事件不同的事件直接忽略,直到产生这 n 个事件中的一个,然后就产生跟这个事件匹配的随机数。
  • 由于 n 个事件发生的概率相等,于是产生的随机数的概率也是相等的。考虑连续产生 x 个随机数,结果应该是 x 个0跟1的组合,为了使某些结果出现的概率相等,我们应该要让这个结果中0和1出现的次数相等,即各占一半。
  • 于是 x 的长度必须是偶数的,为了方便,考虑连续产生 2x 个随机数。每
  • x 个0跟1各出现一半的结果可以赋予1到n的某个数,为了能够表示这n个数,需要0跟1各出现一半的总结果数大于等于n,即C(2*x, x) >= n解出最小的 x 即为效率最高的 x
  • 然后把前 n 个0和1个出现一半的结果分别赋予1到n的值。随机时连续产生2*x个数,如果不是这n个结果中的一个则重新随机,如果是的话则产生对应的值作为随机结果。

五. 蓄水池抽样


1. 给出从 n 个数中随机选择 m 个的方法。注意,n 非常大,并且一开始不知道其具体值。数字流式给出,当给完之后,你必须立刻给出随机的结果。

  • 首先前 m 个数字是必须拿的。
  • i 个数到来的时候,以 m/i 的概率决定是否要选择这个数字。如果选择了这个数字,则随机地替换掉 m 个数字中的一个。
  • 如果前 i-1 个数字的时候保证了每个数字被选取的概率相等,则这样做之后可以保证每个数字被选取的概率也相等,为 m/i
    • i 个数选择的概率是m/i,因为算法就是这样决定的。
    • 考虑前 i-1 个数字中的任意一个,它在第 i 个数之前被选择的概率是m/(i-1)。在第 i 个数字的时候,这个数字要被选择的话又两种可能,一是第 i 个数没有被选中(概率是1-m/i),二是第 i 个数倍选中了(概率是m/i)但是替换掉的数字不是它(概率是1-1/m),于是这个数在第 i 个数时仍然被选择的概率是 m/(i-1) * ((1-m/i) + (m/i * (1-1/m))) = m / (i-1) * ((i-1) / i) = m/i
    • 由数学归纳法原理知,对于任意的 n,当给完 n 个数的时候,选择的结果可以保证这 n 个数中每个被选中的概率都是相等。

六. 策略


1. 一个活动,女生们手里都拿着长短不一的玫瑰花,无序地排成一排,一个男生从队头走到队尾,试图拿到尽可能长的玫瑰花,规则是:一旦他拿了一朵,后面就不能再拿了,如果错过了某朵花,就不能再回头,问最好的策略是什么?

  • 从数学模型上说,就是先拒掉前面 k 个人,不管这些玫瑰花有多长;然后从第 k+1 个人开始,一旦看到比之前所有花都要长,就毫不犹豫地选择。
  • 不难看出,k 的取值很讲究,太小了达不到试的效果,太大了又会导致真正可选的余地不多了。
  • 这就变成了一个纯数学问题:在玫瑰花总数 n 已知的情况下,当 k 等于何值时,按上述策略选中最长玫瑰花的概率最大?如何求出最优的 k 值?
    • 对于某个固定的 k,如果最长的玫瑰花出现在了第 i 个位置(k < i ≤ n),要想让它被选中,就必须得满足前 i-1 个人中的最好的人在前 k 个人里,这有 k/(i-1) 的可能。考虑所有可能的 i,我们便得到了试探前 k 个女生之后能选中最佳女生的总概率 P(k)
      P(k)=\sum_{i=k+1}^{n}\frac{1}{n} \cdot \frac{k}{i-1} = \frac{k}{n}\sum_{i=k+1}^{n}\frac{1}{i-1}
    • x 来表示 k/n 的值,并且假设 n 充分大,则上述公式可以写成:
      P(x) = x \cdot \int_{x}^{1}\frac{1}{t}\, dt = -x \cdot \ln x
    • -x · ln x 求导,并令这个导数为 0,可以解出 x 的最优值1/e

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,343评论 0 2
  • 你的数学直觉怎么样?你能凭借直觉,迅速地判断出谁的概率大,谁的概率小吗?下面就是 26 个这样的问题。如果你感兴趣...
    cnnjzc阅读 6,888评论 0 12
  • 计算机二级C语言上机题库(南开版) 1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平...
    MrSunbeam阅读 6,366评论 1 42
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,030评论 0 2
  • 学习了比较重要的东西ajax,ajax技术的目的是让javascript发送http请求,与后台通信,获取数据和信...
    叫我阿领就好阅读 174评论 0 0