一道笔试题:
题目:
如下图:
在10*10的方格中,要从start(0,0)起点走到end(10,10)终点,其中每一步只能是向上走一步或者是向右走一步。
并且在(5,5)的位置有一个坑,是不能走的。
问从start到end一共有多少种走法?
分析:
其实,这是一道比较简单的排列组合问题,只要你把它抽象出来。
可以看到,从(0,0)到(10,10)的路径上,我们总共要向上走10步,想右走10步,最后组成的路径可能是“上上右右……”
那么其实就是20个位置,在其中选10个放置“上”,再选剩下的10个放置“右”。
所以,总共的走法数是C20取10。
而当不能走(5,5)这个点时,我们就要把经过这个点的走法数减掉。
经过(5,5)的走法数为 从start到(5,5)的走法数 * 从(5,5)到end的走法数
这两者都是C10取5。
所以结果就是C20取10 - C10取5 * C10取5。
——Apie陈小旭