教小学生我喜欢先简化问题。先弄懂从origin(0,0,0)到(1,1,1)有几种路径(ways)?
从(0,0,0)到(1,1,1)总共有三步,但是 x, y, z 方向只能各走一步。
不失一般性,我们可以按从选哪一步走 x 开始(先选 y or z 结论一样)。
三步中任何一步走 x 都行,所以有 C(3,1)(3 choose 1)= 3 种可能;
剩下两步任何一步都可以走 y方向,所以有 C(2,1) (2 choose 1) = 2 种可能;
最后只剩一步走 z, 没有选择,C(1,1)= 1;
所以,从(0,0,0)到(1,1,1)总共有:
C(3,1) * C(2,1) * C(1,1) = 3*2*1 = 6 种可能;
明白了这个,从(0, 0, 0)到(3, 4, 5)就容易了:
C(12, 3) * C(9, 4) * C(5,5) = 220 * 126 * 1 = 27720
--------------------------------------------------------
without passing through the point (2, 3, 2), 意味着必须减掉所有从(0, 0, 0)到(2, 3, 2)的可能路径:
C(7, 2) * C(5, 3) * C(2, 2) = 21 * 10 * 1 = 210
从(2, 3, 2)到(3, 4, 5)的可能路径有(总共5步:1 x, 1 y, 3 z):
C(5, 1) * C( 4, 1) * C(3, 3) = 5 * 4 * 1 = 20
所以所有经过(2, 3, 2)的可能路径是:
210 * 20 = 4200
----------------------------------------------------
so the final total is:
27720 - 4200 = 23520
##