解m个自然数中取n个数的总和为a的组合数(a,m,n属于正整数)比如:m=100,n=20,a=1000,求其组合数是多少,不需要具体的组合.

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/24 06:55:58
解m个自然数中取n个数的总和为a的组合数(a,m,n属于正整数)比如:m=100,n=20,a=1000,求其组合数是多少,不需要具体的组合.
xVMSH+,E#y T1UjˠA?  >$N/̹h9obCA}~tV3 j=fvxy?%<8-Z|a+6JJI)Υc1,U~b7RX4KQ%Io伨wUvfޱdxMD˧K]B^2ک{i=ux|~LyvVercnqʏ[k0+AөW䱰m\'}>d#喇ZWNR PbFCXIKxVsAl[}k=$# *Н`{pZhjm-PZ-ƈu@YyeLxp˳}~.2 ,9 ?1˗Pް\L(~/ b._?Ny5q$tc TT+;0PPOldffWłJɩf/;vQ:@B~ݓ!"#`#L"$ݬށ]IrJlrռ껓G^3>kx-~4m]̤x~ظjùB5j4voɬP m߽?#p(ZWfWf2Ԇ՝D ~I n8XH땪jriBK=6Y9v{%jJ&}k2$7dYTwYM+'dz%A\&ίnS^['KFbxN B CH#`H+ cʒߔ>ױX/2ADGV$dA6Ǒ`KxfVg$zbi!YO‰tkVQ_DtG _B;8&}1MZ/P#!hlUH8up+"?oPY;n wy(ڠëo"7?϶P\BraUޙ8MZ|Gt3N.н^v!;;>Wf 0 DMsv|GG(Te!BR"TPq@9W$ѹɵ~%YC ¶aԨ>GriLO

解m个自然数中取n个数的总和为a的组合数(a,m,n属于正整数)比如:m=100,n=20,a=1000,求其组合数是多少,不需要具体的组合.
解m个自然数中取n个数的总和为a的组合数(a,m,n属于正整数)
比如:m=100,n=20,a=1000,求其组合数是多少,不需要具体的组合.

解m个自然数中取n个数的总和为a的组合数(a,m,n属于正整数)比如:m=100,n=20,a=1000,求其组合数是多少,不需要具体的组合.
可以用编程递归的方法做,想要求出一个关于m,n,a的表达式实在太难了吧.
设答案为f(m,n,a),那么这些情况中分成两类,取了1和没取1的情况
先看没取1的情况,假设存在一种2到m中找了n个数使得和为a的情况,我们把每个2到m的数都-1,那这些数的和就减少了n因为一共取了n个数.那么这个情况就化为了1到m-1个数里取n个,使得和为a-n.那么一共就有f(m-1,n,a-n)这样的情况(根据f的定义)
然后看取了1的情况,我们在2到m里取了剩下的n-1个数,使得和为a-1,那么同理这些情况的数量等同于在1到m-1的数里取n-1个数使得和为(a-1)-(n-1)=a-n,根据定义就等于f(m-1,n-1,a-n).
那么这个问题就变成了找一个f使得
f(m,n,a)=f(m-1,n,a-n)+f(m-1,n-1,a-n)
然后就可以根据递归的思想求出具体的函数值了,设定初始条件为
f(0或负数,*,*) = f(*,0或负数,*)=f(*,*,0或负数)=0,*是通配符.
那这个递归是会终结的,因为f的三个变量都是递减的,第一个和第三个变量是严格递减总有一部会打到0或者负数,f的值就求出来了.

楼上有位大神啊。
我先留个名,再慢慢想想。 ^.^

这m个数是1,2,3,。。m,还是给定的m个数?可重复取吗?
以下是假定这m个数是1,2,3,。。。m,且可重复取
(x+x^2+..x^m)^n 展开后 x^a前的系数即为所求
若这m个数是给定的就把次数换成给定的m个数即可
不可重复暂时没想出简单做法m个数是1,2,3......m个自然数 从中取n个不重复的数 求这n个数的总和为a的组合个数?...

全部展开

这m个数是1,2,3,。。m,还是给定的m个数?可重复取吗?
以下是假定这m个数是1,2,3,。。。m,且可重复取
(x+x^2+..x^m)^n 展开后 x^a前的系数即为所求
若这m个数是给定的就把次数换成给定的m个数即可
不可重复暂时没想出简单做法

收起

楼上的方法正确,只是代码方面有错误。但是这个递归函数运行起来效率很差。就楼主给的例子,基本上算不出来吧。C++如此,Maple就更算不出来了。建议再改进一下。

解m个自然数中取n个数的总和为a的组合数(a,m,n属于正整数)比如:m=100,n=20,a=1000,求其组合数是多少,不需要具体的组合. 组合数性质二数等于n个元素中取m个数所构成的组合数加n个元素中取m-1个数所构成的组合数)书上说把n+1分为带a和不带a的两组,为什么要这样分?为什么就得出这个性质? 解释一个组合数性质n+1个元素中取m个数所构成的组合数等于n个元素中取m个数所构成的组合数加n个元素中取m-1个数所构成的组合数 一道与组合数公式有关的计算化简题目从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做 matlab求n个数中取m个的全组合.注意不是所有组合的个数,而是所有组合的数列.求源代码 matlab求n个数中取m个的全组合.注意不是所有组合的个数,而是所有组合的数列.求源代码 从n个自然数中任意取3个数进行组合,求组合公式. m>n 任意n个数为一组,那么在m个数里有多少个n个数的组合?算不了 10个数中 任意6个数的组合个数? 有50个自然数他们的总和为450,在这个数中,奇数的个数比偶数多,奇数至少有()个要分析 matlab M函数 计算做以下计算:1.自然数n的阶乘;2.n中取m的组合. 怎么理解从n个不同元素中取出m个元素的组合数主要是组合数的理解 取出m个元素的组合,还有个数? 如何计算M个元素中取N个数共能组合出几种不重复!的组合.(比如1221与1122算一个!) 把1,2,……100这100个自然数任意分成10组,每组10个数,将每组中最大的数取出来,所得10个数的和的最大值为M,最小值为N,则M+N=? 9个数字可以组成多少组不重复的3个数字的组合我要公式M个数子中可以组成多少组不重复取N个数字的组合?M>N 求组合数:求n个数(1.n)中k个数的组合. 有100个自然数,它们的总和是2010,在这些数中奇数的个数比偶数的个数少,那么这些数 n个连续的自然数,任取m个,要求取出的m个数中没有相邻的数字,问共有几种取法? 30个自然数中取10个数任意组合,共有多少组数?请列出计算方法和最后结果!