算法01--蜗牛往上爬

不是书里的第一篇,只是我笔记的第一篇。我想能够接着写下去,但是先不要把事情搞得复杂,先写起来吧。
题目是这样的:蜗牛往上爬,晴天爬2米,雨天爬1米,井高有n米,m天之后,它爬到井口的概率。
解题思路,按照古典式概率,把这m天的晴天雨天的组合排出来,挑出其中爬升超过n米的,除以总数就得到了最后的概率。
我们设得出的结果是最后爬升能够超过n的组合的数量,那么

即表示下一天,要么晴天爬1m,要么雨天爬2米。终止条件可以认为爬过的天数是m天时,爬升的高度大于n即可。如下:

int f(x,y) {
  if (x==m) return y >= n ? 1:0;
  ...
}

是不是可以按照剩下的天数已经大于高度了,就直接可以用当作返回值了 。
这玩意还可以通用化,比如晴天概率是p,晴天爬a,雨天爬b,那么

是不是很爽呢。

你可能感兴趣的:(算法01--蜗牛往上爬)