1.5 排列组合
1.5.1 阶乘:阶乘是指一个运算符号,一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。
自然数n的阶乘写作n!,亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
1.5.2 排列定义:从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列;
从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号 A(n,m)表示。
1.5.3 排列计算公式:
1.5.4 组合定义:从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;
从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。用符号 C(n,m) 表示。
1.5.5 组合计算公式:
1.5.6 排列和组合区别:排列是讲究排序的,而组合不考虑元素排序,一般来说,从n中不同元素取出m个元素的排列,要比组合数量多。
对于组合公式的理解,相对排列而言会绕一点,这里试图解释一下组合公式:
从n个不同元素中取出m个元素的所有组合个数,可以理解成先从n个不同的元素中取出m个元素的所有排列个数为Anm (即A(n, m) ),
然后因为m个元素的排序方式共有m!(即m*(m-1)*(m-2)*...*1, m的阶乘)种,而组合不考虑元素排序,相当于数量A(n, m)中重复了m!次,
所以排序数量A(n, m) 除以 排序方式数量m! , 则是我们需要的没有重复的组合数量了,即C(n, m) = A(n, m) / m!
二、逻辑且/或/非/异或,和余数
2.1 计算机为什么采用二进制计数法
2.1.1 在10进制计数法中,位数少,但是数字的种类多。(对于人类来说,比较易用)
2.1.2 在二进制计数法中,数字的种类少哦,但是位数多。(对于计算机来说,这种比较易用)
2.2 指数的法则:对于指数 a^n, n每减1,新的值就变成原来的1/a,即a^(n-1) 为 a^n的1/a
2.3 零的作用:用来表示占位;也用来统一标准,简化规则;
2.4 逻辑
命题:能够判断对错的陈述句叫做命题。命题正确时,则该命题为“真”(true);反之,命题不正确时,称该命题为“假”(false)。
在建立规则时,需要确认规则有没有“遗漏”和“重复”;
没有“遗漏”,即完整性,明确此规则在什么情况下都能适用;没有“重复”,即具备排他性,明确此规则不存在矛盾之处。
逻辑从根本上说是对完整性和排他性的组合表达。
三、数学归纳法
四、排列组合
五、递归
六、指数爆炸
参考资料:百度百科,和《程序员的数学.(日)结城浩》