拆分数
作者:屎壳郎 miaosg01@163.com
日期:June 2021
版次:初版
简介: 在排序算法中,如果数据排列出现一个反序,那就代表着排序算法要对其进行一次处理,排序就是要把反序全部消除,故排列反序的母函数在排序算法分析中占有核心的地位,是一切排序算法分析的起点和基础。该文系统的介绍了反序母函数的相关数学背景知识,从拆分数导出反序的母函数,并对相关的数学知识进行了扩展介绍。
关键词:排序算法、反序、排列反序的母函数,反序概率分布的母函数。
1.拆数为和
把5拆分成 { 1 , 2 , 3 , 4 } \{1, 2, 3, 4\} {
1,2,3,4}中数字的和,数字不可重复使用:
( x 0 + x 1 ) ( x 0 + x 2 ) ( x 0 + x 3 ) ( x 0 + x 4 ) = x 0 + x 1 + x 2 + 2 x 3 + 2 x 4 + 2 x 5 + 2 x 6 + ⋯ (x^0+x^1)(x^0+x^2)(x^0+x^3)(x^0+x^4)=x^0+x^1+x^2+2x^3+2x^4+2x^5+2x^6+\cdots (x0+x1)(x0+x2)(x0+x3)(x0+x4)=x0+x1+x2+2x3+2x4+2x5+2x6+⋯
上式表示把5拆分为 { 1 , 2 , 3 , 4 } \{1, 2, 3, 4\} {
1,2,3,4}中数字之和共有多少种拆分方法,在 2 x 5 2x^5 2x5这一项中,指数5为我们要拆分的数,系数2代表拆分方法有两种。即:第一种,在第一个括号中选 x 1 x^1 x1,第二个括号选中选 x 0 x^0 x0,第三个括号中选 x 0 x^0 x0,第四个括号中选 x 4 x^4 x4, x 5 = x 1 + 0 + 0 + 4 x^5=x^{1+0+0+4} x5=x1+0+0+4。同理,第二种拆分方法为,在第一个括号中选 x 0 x^0 x0 ,第二个括号选中选 x 2 x^2 x2,第三个括号中选 x 3 x^3 x3,第四个括号中选 x 0 x^0 x0, x 5 = x 0 + 2 + 3 + 0 x^5=x^{0+2+3+0} x5=x0+2+3+0,可以看出,除了上述的两种拆分方法,不存在其它的拆分方法了。
如果更深入一步,如果1可以重复使用一次,则拆分数的母函数变为:
( x 0 + x 1 + x 1 + 1 ) ( x 0 + x 2 ) ( x 0 + x 3 ) ( x 0 + x 4 ) (x^0+x^1+x^{1+1})(x^0+x^2)(x^0+x^3)(x^0+x^4) (x0+x1+x1+1)(x0+x2)(x0+x3)(x0+x4)
= x 0 + x 1 + 2 x 2 + 2 x 3 + 3 x 4 + 3 x 5 + 2 x 6 + ⋯ =x^0+x^1+2x^2+2x^3+3x^4+3x^5+2x^6+\cdots =x0+x1+2x2+2x3+3x4+3x5+2x6+⋯
根据 3 x 5 3x^5 3x5项,我们可以得出:在1可以重复使用一次的情况下,拆分5的方法共有3种。
由此可以推出,任意整数n拆分为不同数的母函数为:
( 1 + x 1 ) ( 1 + x 2 ) ( 1 + x 3 ) ( 1 + x 4 ) ( 1 + x 5 ) ( 1 + x 6 ) … (1+x^1)(1+x^2)(1+x^3)(1+x^4)(1+x^5)(1+x^6)\ldots (1+x1)(1+x2)(1+x3)(1+x4)(1+x5)(1+x6)…
= 1 + x + x 2 + 2 x 3 + 2 x 4 + 3 x 5 + 4 x 6 + 5 x 7 + 6 x 8 + ⋯ =1+x+x^2+2x^3+2x^4+3x^5+4x^6+5x^7+6x^8+\cdots =1+x+x2+2x3+2x4+3x5+4x6+5x7+6x8+⋯
任意整数n拆分为任意数之和的方法(一个数可任意重复使用):
( 1 + x 1 + x 1 + 1 + x 1 + 1 + 1 + ⋯ ) ( 1 + x 2 + x 2 + 2 + x 2 + 2 + 2 + ⋯ ) ( 1 + x 3 + x 3 + 3 + x 3 + 3 + 3 ⋯ ) ( 1 + x 4 + x 4 + 4 + x 4 + 4 + 4 + ⋯ ) ⋯ (1+x^1+x^{1+1}+x^{1+1+1}+\cdots)(1+x^2+x^{2+2}+x^{2+2+2}+\cdots) (1+x^3+x^{3+3}+x^{3+3+3}\cdots)(1+x^4+x^{4+4}+x^{4+4+4}+\cdots)\cdots (1+x1+x1+1+x1+1+1+⋯)(1+x2+x2+2+x2+2+2+⋯)(1+x3+x3+3+x3+3+3⋯)(1+x4+x4+4+x4+4+4+⋯)⋯
= ( 1 + x + x 2 + x 3 + x 4 + ⋯ ) ( 1 + x 2 + x 4 + x 6 + ⋯ ) ( 1 + x 3 + x 6 + x 9 + ⋯ ) ( 1 + x 4 + x 8 + x 12 + ⋯ ) ⋯ =(1+x+x^2+x^3+x^4+\cdots)(1+x^2+x^4+x^6+\cdots) (1+x^3+x^6+x^9+\cdots)(1+x^4+x^8+x^{12}+\cdots)\cdots =(1+x+x2+x3+x4+⋯)(1+x2+x4+x6+⋯)(1+x3+x6+x9+⋯)(1+x4+x8+x12+⋯)⋯
= 1 (