|

楼主 |
发表于 2009-5-18 11:00
|
显示全部楼层
[原创]用高中的排列组合知识解不定方程的正整数解的组数
对于方程x+y+z+……+u=n,x,y,z,……,u不能整除P1,P2,P3,……,Pj.
求正整数解的组数问题,以前我是用待定系数法求公式,再求任意给定的n时方程符合
条件的正整数解的组数。用待定系数法最少需要m个周期内所有的值,m为给定的未知
数个数,周期=P1*P2*P3*……*Pj,所有限制条件的积,这些条件互质,但不一定是
质数,如4,9这样的条件也可以。
后来有林梦启先生的提示,不在用待定系数法了,可以用计数乘法原理进行分步计算,
这时,只要计算出一个周期内的所有组合,落到m个周期的方法,在与对应周期的组合
数相乘,后把不同周期的方法相加即可。
现在举例说明:
求x+y+z=n,x,y,z不能整除2,3,5;方程正整数解的组数。
先简单的介绍一下,它的组数是一个2次函数。把n个物体排成一排,从物体与物体
之间放2块木板,则共有C(n-1,2)=(n-1)*(n-2)/2种方法,如果x对应第一段物体的数量
y对应第二段物体的数量,z对应第三段物体的数量。则木板的放法正好是方程的正整数
解的组数(这样的组数无限制条件),当有限制条件时,其解的组数仍然是2次函数。
不能整除2,3,5的数,以2*3*5=30为周期,在第一周期内有1,7,11,13,17,19,
23,29.然后加上周期的倍数,都符合条件。2次函数形式有3个系数,所以需要3个
周期内n值对应的组数,现在把3周以内的3*8=24个元素做三维加法得到1,3,5,…
29,31,33,……,89对应的组数.
然后把1,31,61对应的组数代入2次函数,这样就求出了15类数的公式。
以上是用待定系数法求出n值对应的组数,下面是用分步法求的。
我们把1,7,11,13,17,19,23,29这8个基本元素做3维加法合成,得到分布在
3,5,7,9,11,……,87的合成方法。
另外,假设n=30*18+17,一周的方法为0,二周的方法为36,三周的方法为3,
所以,符合条件的解组数为0*C(18+3-1,3-1)+36*C(18-1+3-1,3-1)+3*C(18-2+3-1,3-1)
36*C(19,2)+3*C(18,2)=36*19*18/2+3*18*17/2=6615.
这里用到了x+y+z+……+u=n(m个未知数)的非负整数解的组数。
它的解为C(n+m-1,m-1)=(n+m-1)!/n!/(m-1)!.用(1+x)^(n+m-1)中x^(m-1)的系数
可以证明。
这样就可以求的任意线性方程限定条件下正整数解的组数。
在分步法中,可以直接证明此类公式是一组(m-1)次周期k的函数。
不过,当条件增多时,m变大时,组数还是很难求的。
|
|