不瞒大家说,今天和同学讨论一个问题:低开、高开、低走、高走,一共有多少个排列组合(当时还不明白排列和组合的具体含义),然后我就说是 A22 * 2,同学说不对,而是 A21 * A21,然后我就开始学习排列组合,因为排列组合在我做“扛精”的道路上已经好几次吃了不懂的亏,通过知乎的一个答案,我彻底明白了:
排列就是一个萝卜一个坑啊,第一个坑有 m 种选择,第二个有 m-1 种,第 n 个有 m-n+1。
算法就是排列公式啊。阶乘知道吧……
组合就是在排列的基础上坑不需要顺序了,一把抓,排列除以坑的全排列就好。
然后我突然发现,这个东西不就是我经常写的代码里面的一些基础思想吗,排序和其他的一些东西。 因此我有感而发,数学中还有什么基础的数学理论,对编程特别特别重要的呢。