你能帮我弄点算法吗?
我应该找到N数的所有可能组合:1/N,2/N,3/N,.,N-2/n,N-1/N,N/N
例如,取4个数字: A,B,C,D
1/4: A+B+C+D
2/4: A*B + A*C + A*D + B*C + B*D + C*D
3/4: A*B*C + A*B*D + A*C*D + B*C*D
4/4: A*B*C*D
我怎么才能解决这个问题?
发布于 2014-01-24 14:41:33
您可以注意到,这些是多项式(X + A)(X + B)(X + C)(X + D)的系数。
它足以实现一个多项式的单项乘法和迭代使用它。
def PolyByMono(Poly, Mono):
Poly.append(0)
for i in range(len(Poly) - 2, -1, -1):
Poly[i + 1]+= Mono * Poly[i]
Poly[0]+= Mono
return Poly
def Expand(Numbers):
Poly= [Numbers[0]]
for M in Numbers[1:]:
Poly= PolyByMono(Poly, M)
print Poly
Expand([1, 2, 3, 4])给予:
[10, 35, 50, 24]https://stackoverflow.com/questions/21327779
复制相似问题