由于每行1的个数相等,不妨设每行1的个数为 r ,在 n阶矩阵 A的 n 列中任取 i 1 , i 2 , − − − , i k i_1,i_2,---,i_k i1,i2,−−−,ik 这 k 列,如果这 k 列的每一列都有 m 个1,现在来计算满足这一条件的填法总数.
考察这 k 列和 A 每一行交叉的 k 个位置,如果这 k 个位置有 t 个1,那么使这 k 个位置有 t 个1的取法总数是
C t k C_{t}^{k} Ctk ,每一种取法的0和1在 k 个交叉位置形成一个位模式,如果把所有取法按其对应的位模式的字典序编号为 1 , 2 , − − − , C t k 1,2,---,C_{t}^{k} 1,2,−−−,Ctk ,则每一种取法在 n 行中出现的次数(非负整数)依次记为 α t 1 , α t 2 , − − − , α t C t k \alpha_{t1},\alpha_{t2},---,\alpha_{tC_{t}^{k}} αt1,αt2,−−−,αtCtk ,对于每一种取法,由于在 k 个交叉位置有 t 个1,故同一行剩下 n − k n-k n−k 个位置还可以放置 r − t r-t r−t 个1,方法总数为 C r − t n − k C_{r-t}^{n-k} Cr−tn−k 故由乘法原理,在不考虑 α t 1 , α t 2 , − − − , α t C t k \alpha_{t1},\alpha_{t2},---,\alpha_{tC_{t}^{k}} αt1,αt2,−−−,αtCtk 在 n 行中的具体分布的情况下所有的 C t k C_{t}^{k} Ctk 种取法对应的矩阵 A 的填法总数是 ( C r − t n − k ) α t 1 + α t 2 + − − − + α t C t k (C_{r-t}^{n-k})^{\alpha_{t1}+\alpha_{t2}+---+\alpha_{tC_{t}^{k}}} (Cr−tn−k)αt1+αt2+−−−+αtCtk 再用乘法原理对 t 计算连乘积得到不考虑 α t 1 , α t 2 , − − − , α t C t k \alpha_{t1},\alpha_{t2},---,\alpha_{tC_{t}^{k}} αt1,αt2,−−−,αtCtk 在 n 行中的具体分布的情况下所有可能的 t 对应的所有可能得取法对应的矩阵 A 的填法总数
∏ t = 0 m i n ( r , k ) ( C r − t n − k ) α t 1 + α t 2 + − − − + α t C t k \prod_{t=0}^{min(r,k)}{(C_{r-t}^{n-k})^{\alpha_{t1}+\alpha_{t2}+---+\alpha_{tC_{t}^{k}}}} ∏t=0min(r,k)(Cr−tn−k)αt1+αt2+−−−+αtCtk
注意我们有约束关系 ∑ t = 0 k α t 1 + α t 2 + − − − + α t C t k = n \sum_{t=0}^{k}{\alpha_{t1}+\alpha_{t2}+---+\alpha_{tC_{t}^{k}}}=n ∑t=0kαt1+αt2+−−−+αtCtk=n
以及 ∑ t = 1 k α t 1 ( i ) + α t 2 ( i ) + − − − + α t C t − 1 k − 1 ( i ) = m \sum_{t=1}^{k}{\alpha_{t1}^{(i)}+\alpha_{t2}^{(i)}+---+\alpha_{tC_{t-1}^{k-1}}^{(i)}}=m ∑t=1kαt1(i)+αt2(i)+−−−+αtCt−1k−1(i)=m 1 < = i < = k 1<=i<=k 1<=i<=k
(把 k 个交叉位置从左至右第 i 个位置上的数取1,剩下 k − 1 k-1 k−1 个位置取 t − 1 t-1 t−1 个1对应的每一种取法在
α t 1 , α t 2 , − − − , α t C t k \alpha_{t1},\alpha_{t2},---,\alpha_{tC_{t}^{k}} αt1,αt2,−−−,αtCtk 中对应的数依次记为 α t 1 ( i ) , α t 2 ( i ) , − − − , α t C t − 1 k − 1 ( i ) \alpha_{t1}^{(i)},\alpha_{t2}^{(i)},---,\alpha_{tC_{t-1}^{k-1}}^{(i)} αt1(i),αt2(i),−−−,αtCt−1k−1(i) 约束关系 ∑ t = 1 k α t 1 ( i ) + α t 2 ( i ) + − − − + α t C t − 1 k − 1 ( i ) = m \sum_{t=1}^{k}{\alpha_{t1}^{(i)}+\alpha_{t2}^{(i)}+---+\alpha_{tC_{t-1}^{k-1}}^{(i)}}=m ∑t=1kαt1(i)+αt2(i)+−−−+αtCt−1k−1(i)=m 即指所有可能的 t 对应的所有可能得取法对应的矩阵 A 的填法中
i 1 , i 2 , − − − , i k i_1,i_2,---,i_k i1,i2,−−−,ik 中的第 i 列的1的个数为m)
如果再考虑 α t 1 , α t 2 , − − − , α t C t k \alpha_{t1},\alpha_{t2},---,\alpha_{tC_{t}^{k}} αt1,αt2,−−−,αtCtk ( 0 < = t < = k 0<=t<=k 0<=t<=k) 在 n 行中的具体分布,由组合数公式所有的分布可能数
为 n ! ∏ t = 0 k α t 1 ! α t 2 ! − − − α t C t k ! \frac{n!}{\prod_{t=0}^{k}{\alpha_{t1}!\alpha_{t2}!---\alpha_{tC_{t}^{k}}!}} ∏t=0kαt1!αt2!−−−αtCtk!n! 从而由乘法原理所有可能的 t 对应的所有可能得取法对应的矩阵 A 的填法总数是
n ! ∏ t = 0 k α t 1 ! α t 2 ! − − − α t C t k ! ∏ t = 0 m i n ( r , k ) ( C r − t n − k ) α t 1 + α t 2 + − − − + α t C t k \frac{n!}{\prod_{t=0}^{k}{\alpha_{t1}!\alpha_{t2}!---\alpha_{tC_{t}^{k}}!}} \prod_{t=0}^{min(r,k)}{(C_{r-t}^{n-k})^{\alpha_{t1}+\alpha_{t2}+---+\alpha_{tC_{t}^{k}}}} ∏t=0kαt1!αt2!−−−αtCtk!n!∏t=0min(r,k)(Cr−tn−k)αt1+αt2+−−−+αtCtk
对满足约束条件的所有可能的 α t 1 , α t 2 , − − − , α t C t k \alpha_{t1},\alpha_{t2},---,\alpha_{tC_{t}^{k}} αt1,αt2,−−−,αtCtk 求和得到矩阵 A的 i 1 , i 2 , − − − , i k i_1,i_2,---,i_k i1,i2,−−−,ik 这 k 列的每一列都有 m 个1的所有可能的填法总数 f ( n , m , k , r ) = f(n,m,k,r)= f(n,m,k,r)=
∑ ∑ t = 0 k α t 1 + α t 2 + − − − + α t C t k = n , ∑ t = 1 k α t 1 ( i ) + α t 2 ( i ) + − − − + α t C t − 1 k − 1 ( i ) = m , 1 < = i < = k n ! ∏ t = 0 k α t 1 ! α t 2 ! − − − α t C t k ! ∏ t = 0 m i n ( r , k ) ( C r − t n − k ) α t 1 + α t 2 + − − − + α t C t k \sum_{\sum_{t=0}^{k}{\alpha_{t1}+\alpha_{t2}+---+\alpha_{tC_{t}^{k}}}=n,\sum_{t=1}^{k}{\alpha_{t1}^{(i)}+\alpha_{t2}^{(i)}+---+\alpha_{tC_{t-1}^{k-1}}^{(i)}}=m,1<=i<=k}{\frac{n!}{\prod_{t=0}^{k}{\alpha_{t1}!\alpha_{t2}!---\alpha_{tC_{t}^{k}}!}} \prod_{t=0}^{min(r,k)}{(C_{r-t}^{n-k})^{\alpha_{t1}+\alpha_{t2}+---+\alpha_{tC_{t}^{k}}}}} ∑∑t=0kαt1+αt2+−−−+αtCtk=n,∑t=1kαt1(i)+αt2(i)+−−−+αtCt−1k−1(i)=m,1<=i<=k∏t=0kαt1!αt2!−−−αtCtk!n!∏t=0min(r,k)(Cr−tn−k)αt1+αt2+−−−+αtCtk
下面令 B n B_n Bn 表示{ 1 , 2 , − − − , n 1,2,---,n 1,2,−−−,n}的所有二元子集构成的集合, B n , k B_{n,k} Bn,k 表示 B n B_n Bn 的所有 k 元子集构成的集合
令 A i j A_{ij} Aij 表示 A 满足每行1的个数为 r ,且i,j列1的个数不等的填法的集合
由容斥原理 ∣ ⋂ 1 < = i < j < = n A i j ∣ = ∣ S ∣ + ∑ k = 1 C 2 n ( − 1 ) k ∑ ( ( i 1 , j 1 ) , ( i 2 , j 2 ) , − − − , ( i k , j k ) ) ∈ B n , k ∣ A i 1 j 1 ˉ ∩ A i 2 j 2 ˉ ∩ − − − ∩ A i k j k ˉ ∣ |\bigcap_{1<=i<j<=n}{A_{ij}}| = |S|+\sum_{k=1}^{C_{2}^{n}}{(-1)^{k}\sum_{((i_1,j_1),(i_2, j_2),---,(i_k,j_k))\in B_{n,k}}}{|\bar{A_{i_1j_1}}\cap \bar{A_{i_2j_2}}\cap --- \cap \bar{A_{i_kj_k}}|} ∣⋂1<=i<j<=nAij∣=∣S∣+∑k=1C2n(−1)k∑((i1,j1),(i2,j2),−−−,(ik,jk))∈Bn,k∣Ai1j1ˉ∩Ai2j2ˉ∩−−−∩Aikjkˉ∣
= ∣ S ∣ + ∑ k = 2 n ∑ 1 < = i 1 < − − − < i k < = n E ( i 1 , i 2 , − − − , i k ) ∣ B ( i 1 , i 2 , − − − , i k ) ∣ = |S|+\sum_{k=2}^{n}{\sum_{1<=i_1<---<i_k<=n}{E(i_1,i_2,---,i_k)|B(i_1,i_2,---,i_k)|}} =∣S∣+∑k=2n∑1<=i1<−−−<ik<=nE(i1,i2,−−−,ik)∣B(i1,i2,−−−,ik)∣
其中 S S S 表示向矩阵 A 填入0,1使得每行1的个数为 r 的填法集合 ∣ S ∣ = ( C r n ) n |S|=(C_{r}^{n})^{n} ∣S∣=(Crn)n
B ( i 1 , i 2 , − − − , i k ) B(i_1,i_2,---,i_k) B(i1,i2,−−−,ik) 表示 i 1 , i 2 , − − − , i k i_1,i_2,---,i_k i1,i2,−−−,ik 这k列1的个数相等的填法集合
下面来决定系数 E ( i 1 , i 2 , − − − i k ) E(i_1,i_2,---i_k) E(i1,i2,−−−ik)
令 D k , f D_{k,f} Dk,f 表示{ i 1 , i 2 , − − − , i k i_1,i_2,---,i_k i1,i2,−−−,ik }的 f f f 元子集构成的集合
D k m D_{k}^{m} Dkm 表示 D k , 2 D_{k,2} Dk,2 的所有 m 元子集构成的集合 ∣ D k m ∣ = C m C 2 k |D_{k}^{m}| = C_{m}^{C_{2}^{k}} ∣Dkm∣=CmC2k
B i t B_{i_{t}} Bit ( 1 < = t < = k 1<=t<=k 1<=t<=k ) 表示 D k m D_{k}^{m} Dkm 中包含包含 i t i_t it 的二元组的元素构成的集合,则由容斥原理
∣ B i 1 ∩ − − − B i k ∣ = ∣ D k m ∣ + ∑ s = 1 k ( − 1 ) s ∑ ( t 1 , t 2 , − − − , t s ) ∈ D k , s ∣ B t 1 ˉ ∩ − − − ∩ B t s ˉ ∣ |B_{i_1}\cap ---B_{i_k}| = |D_{k}^{m}|+\sum_{s=1}^{k}{(-1)^s\sum_{(t_1,t_2,---,t_s)\in D_{k,s}}{|\bar{B_{t_1}}\cap---\cap \bar{B_{t_s}}|}} ∣Bi1∩−−−Bik∣=∣Dkm∣+∑s=1k(−1)s∑(t1,t2,−−−,ts)∈Dk,s∣Bt1ˉ∩−−−∩Btsˉ∣
其中 B t 1 ˉ ∩ − − − ∩ B t s ˉ \bar{B_{t_1}}\cap---\cap \bar{B_{t_s}} Bt1ˉ∩−−−∩Btsˉ表示 D k m D_{k}^{m} Dkm 中不包含包含 i t i_t it( 1 < = t < = s 1<=t<=s 1<=t<=s ) 的二元组的元素构成的集合
实际上 B t 1 ˉ ∩ − − − ∩ B t s ˉ \bar{B_{t_1}}\cap---\cap \bar{B_{t_s}} Bt1ˉ∩−−−∩Btsˉ 就是{ i 1 , i 2 , − − − i k i_1,i_2,---i_k i1,i2,−−−ik }-{ t 1 , t 2 , − − − , t s t_1,t_2,---,t_s t1,t2,−−−,ts }的二元子集构成的集合的全部m元子集构成的集合,其大小即为 C m C 2 r − s C_{m}^{C_{2}^{r-s}} CmC2r−s 因此 ∣ B t 1 ˉ ∩ − − − ∩ B t s ˉ ∣ = C m C 2 r − s |\bar{B_{t_1}}\cap---\cap \bar{B_{t_s}}| = C_{m}^{C_{2}^{r-s}} ∣Bt1ˉ∩−−−∩Btsˉ∣=CmC2r−s
故 ∣ B i 1 ∩ − − − B i k ∣ = C m C 2 k + ∑ s = 1 m i n ( r , k ) ( − 1 ) s C s k C m C 2 r − s |B_{i_1}\cap ---B_{i_k}| = C_{m}^{C_{2}^{k}}+\sum_{s=1}^{min(r,k)}{(-1)^sC_{s}^{k}C_{m}^{C_{2}^{r-s}}} ∣Bi1∩−−−Bik∣=CmC2k+∑s=1min(r,k)(−1)sCskCmC2r−s
从而 E ( i 1 , i 2 , − − − i k ) = ∑ m = 1 C 2 k ( − 1 ) m ∣ B i 1 ∩ − − − B i k ∣ = ∑ m = 1 C 2 k ( − 1 ) m ( C m C 2 k + ∑ s = 1 m i n ( r , k ) ( − 1 ) s C s k C m C 2 r − s ) E(i_1,i_2,---i_k)=\sum_{m=1}^{C_{2}^{k}}{(-1)^m|B_{i_1}\cap ---B_{i_k}|} = \sum_{m=1}^{C_{2}^{k}}{(-1)^m(C_{m}^{C_{2}^{k}}+\sum_{s=1}^{min(r,k)}{(-1)^sC_{s}^{k}C_{m}^{C_{2}^{r-s}}})} E(i1,i2,−−−ik)=∑m=1C2k(−1)m∣Bi1∩−−−Bik∣=∑m=1C2k(−1)m(CmC2k+∑s=1min(r,k)(−1)sCskCmC2r−s)
由前文结论 ∣ B ( i 1 , i 2 , − − − , i k ) ∣ = ∑ m = 0 [ n r k ] f ( n , m , k , r ) |B(i_1,i_2,---,i_k)| = \sum_{m= 0}^{\left[ \frac{nr}{k} \right]}{f(n,m,k,r)} ∣B(i1,i2,−−−,ik)∣=∑m=0[knr]f(n,m,k,r)
求和上限是因为约束条件 k m < = r n km<=rn km<=rn
于是我们有 g ( n , r ) = ∣ ⋂ 1 < = i < j < = n A i j ∣ g(n,r) = |\bigcap_{1<=i<j<=n}{A_{ij}}| g(n,r)=∣⋂1<=i<j<=nAij∣ = ( C r n ) n + ∑ k = 2 n ∑ 1 < = i 1 < − − − < i k < = n ( ∑ m = 1 C 2 k ( − 1 ) m ( C m C 2 k + ∑ s = 1 m i n ( r , k ) ( − 1 ) s C s k C m C 2 r − s ) ) ∑ m = 0 [ n r k ] f ( n , m , k , r ) =(C_{r}^{n})^{n}+ \sum_{k=2}^{n}{\sum_{1<=i_1<---<i_k<=n}{(\sum_{m=1}^{C_{2}^{k}}{(-1)^m(C_{m}^{C_{2}^{k}}+\sum_{s=1}^{min(r,k)}{(-1)^sC_{s}^{k}C_{m}^{C_{2}^{r-s}}})})\sum_{m= 0}^{\left[ \frac{nr}{k} \right]}{f(n,m,k,r)}}} =(Crn)n+∑k=2n∑1<=i1<−−−<ik<=n(∑m=1C2k(−1)m(CmC2k+∑s=1min(r,k)(−1)sCskCmC2r−s))∑m=0[knr]f(n,m,k,r)
= ( C r n ) n + =(C_{r}^{n})^{n}+ =(Crn)n+ ∑ k = 2 n C k n ( ∑ m = 1 C 2 k ( − 1 ) m ( C m C 2 k + ∑ s = 1 m i n ( r , k ) ( − 1 ) s C s k C m C 2 r − s ) ) ∑ m = 0 [ n r k ] f ( n , m , k , r ) \sum_{k=2}^{n}{C_{k}^{n}(\sum_{m=1}^{C_{2}^{k}}{(-1)^m(C_{m}^{C_{2}^{k}}+\sum_{s=1}^{min(r,k)}{(-1)^sC_{s}^{k}C_{m}^{C_{2}^{r-s}}})})\sum_{m= 0}^{\left[ \frac{nr}{k} \right]}{f(n,m,k,r)}} ∑k=2nCkn(∑m=1C2k(−1)m(CmC2k+∑s=1min(r,k)(−1)sCskCmC2r−s))∑m=0[knr]f(n,m,k,r)
最后,由于填入0,1后 A 的每一列1的个数都不同且每一列1的个数在0和n之间(包括0和n)又因为 A 有n列所以 A 的各列1的个数构成的集合实际上为 A i , n A_{i,n} Ai,n = { 0 , 1 , − − − , n 0,1,---,n 0,1,−−−,n }-{ i i i } ( 0 < = i < = n 0<=i<=n 0<=i<=n )
于是所有可能的 r 的集合 E n E_n En = { ∑ x ∈ A i , n x n \frac{\sum_{x\in A_{i,n}}{x}}{n} n∑x∈Ai,nx | ∑ x ∈ A i , n x n \frac{\sum_{x\in A_{i,n}}{x}}{n} n∑x∈Ai,nx 为整数, 0 < = i < = n 0<=i<=n 0<=i<=n }
从而n阶矩阵 A 中填入0,1,使得每行1的个数相等,每列1的个数两两不同的填法总数
h ( n ) = ∑ r ∈ E n g ( n , r ) h(n) = \sum_{r\in E_n}{g(n,r)} h(n)=∑r∈Eng(n,r)
事实上,通过简单的计算可以发现设 k k k为正整数 n = 2 k n=2k n=2k 时 r = k r=k r=k n = 2 k + 1 n=2k+1 n=2k+1 时 r = k r = k r=k 或 k + 1 k+1 k+1
故 n = 2 k n=2k n=2k 时 E n = E_n = En={ k k k } n = 2 k + 1 n=2k+1 n=2k+1 时 E n E_n En = { k , k + 1 k,k+1 k,k+1 }