Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 把数字分成固定的部分_Math - Fatal编程技术网

Math 把数字分成固定的部分

Math 把数字分成固定的部分,math,Math,什么是算法来找到数字的方式来分离数字M到p的一部分,没有两部分相等。 例子: M=5,P=2 它们是(1,4)(2,3)。如果P=3,则没有可用的分区,即 不是(1,2,2),因为分区中有两个2。在扩展产品中 (1+x)(1+x2)(1+x3)…(1+xn) 求x^n的系数。这就给出了将n表示为不同数字之和的任何可能性的数字,即可变数量的项 你想知道可能性的数量 n=i1+i2+…+iP,i10,但彼此无关 相应的生成函数是x的幂的几何级数的乘积,省略了常数项 (x+x2+x3+…)*(x2+

什么是算法来找到数字的方式来分离数字M到p的一部分,没有两部分相等。 例子: M=5,P=2 它们是(1,4)(2,3)。如果P=3,则没有可用的分区,即
不是(1,2,2),因为分区中有两个2。

在扩展产品中

(1+x)(1+x2)(1+x3)…(1+xn)

求x^n的系数。这就给出了将n表示为不同数字之和的任何可能性的数字,即可变数量的项


你想知道可能性的数量

n=i1+i2+…+iP,i1 可通过设置

i1=j1,i2=i1+j2=j1+j2

iP=iP-1+jP=j1+j2+…+jP,所有jk>0

因此,最初的任务与计算一个人可以解决的所有方法是一样的

n=p*j1+(p-1)*j2+…+1*jP,所有jk>0,但彼此无关

相应的生成函数是x的幂的几何级数的乘积,省略了常数项

(x+x2+x3+…)*(x2+x4+x6+…)*(x3+x6+x9+…)*…*(xP+x2*P+x3*P+…)

=xP*(p+1)/2*(1+x+x2+…)*(1+x2+x4+…)*(1+x3+x6+…)*…*(1+xP+x2*P+…)

显然,要得到任何解,都需要n>=p*(p+1)/2。对于P=3,该界为n>=6,因此在这种情况下,n=5确实没有解


算法

count = new double[N]
for k=0..N-1 do count[k] = 1
for j=2..P do
    for k=j..N-1 do
        count[k] += count[k-j]

然后count[k]包含n=p*(p+1)/2+k的组合数。

你有什么算法吗?请分享一下,我不擅长数学。这个生成函数是指n的所有可能分区的个数,分成不同的部分,而不仅仅是p个不同的部分。从问题的表述来看,这并不完全清楚。增加了P个不同项之和的约化和生成函数。此任务的生成公式是
x^(P*(P+1)/2)/Product{k=1..P}(1-x^k)
-不知道如何在一般情况下将有理数展开为多项式一次一个因子。二项多项式除法是一种相当基本的算法,例如见Horner-Ruffini格式。