数列程序化求解的方法
1*a1+2*a2+....48*a48=480a1+a2+....a48=80
an为自然数
求助各位大神,满足条件的{a1,a2....,a48}大概有多少组?
有没有程序化求解的办法? 递归应该可以,层数有点多 计算了一下,大约为 20746894993467691 看来还得添加新的约束条件,这个数列是我从工程需要抽象出来的,本来想穷举出来,在机器上看实际效果的
这解也太多了点 版主是用48层递归计算出来的吗,数列中的数值均为自然数也要这么多解吗? 递归到20就卡死了。递推出来的。注意自然数是包含0的 是的,确实是有0的情况
谢谢了 import numpy as np
def s(n,s1,s2):
t=np.zeros((n+1,s1+1,s2+1))
for i in range(s2+1):
t = 1
t = 1
for nn in range(3,n+1):
for x in range(s2+1):
for i in range(s1//nn+1):
for y in range(s1+1):
if y+i*nn<=s1:
if x+i<=s2:
t +=t
return(int(t))
print (s(48,480,80))
返回20746894993467692 多谢! 弱弱的问一句,这是C语言吗?我怎么感觉不太认识。。。
页:
[1]
2