几道抛硬币问题

coin toss

只是记录一下遇到的几道抛硬币的概率问题。

 

1、平均需要抛掷多少次硬币,才会首次出现连续的两个正面?

假设连续两个正面的期望是 E,那么,先看第一次抛硬币:

  1. 如果抛到反面,那么还期望抛 E 次,因为抛到反面完全没用,总数就期望抛 E+1
  2. 如果抛到正面,那么要看下一次,如果下一次也是正面,那抛硬币就结束了,总数是 2;如果下一次是反面,那么相当于重头来过,总数就期望抛 E+2

于是可以得到如下关系式:

E = 0.5(E+1) + 0.25*2 + 0.25(E+2)

得到所求期望 E=6

现在把题目拓展,不是说“连续两个正面”,而是“连续 n 个正面”呢?

这个问题 Matrix67 有非常有趣的解

[……]阅读全文

青蛙跳台阶问题的三种解法

frog 题目:一只青蛙一次可以跳 1 级台阶,也可以跳 2 级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。

这道题还被 ITEye 放在了博文视点杯有奖答题活动里面。

我提供三种解法。

1、递归求解:

青蛙每跳一次前,有这样三种情况:

  • (1)只剩 1 级或 0 级台阶了,只能跳一步或者无法再跳了,那么这条路也走到了终点,走法的种类数可以加 1;
  • (2)可以走 2 级台阶;
  • (3)可以走 1 级台阶。

于是递归方法求解:

/** 
 * 递归方法 
 */  
public static int calc(int n) {  
    return recursiveCalc(n, 0);

[……]阅读全文

back to top