len(combo)是对的,但算rates的时候不能遍历combo中的所有元素,可以告诉我应该怎么修改吗
试着把print()放进k循环里:
import numpy as np
def PowerSetsBinary(items):
N = len(items)
a = 90
b = 100
global rates
for i in range(2**N):
combo = [a,b]
for j in range(N):
if (i>>j)%2:
combo.append(items[j])
print(combo)
for k in combo:
if k>np.mean(combo):
rates=30-(k-np.mean(combo))/np.mean(combo)*100*0.5
else:
rates=30+(k-np.mean(combo))/np.mean(combo)*100*0.5
print(combo,rates,len(combo))
#print(combo,rates,len(combo))
PowerSetsBinary([80,90,100])
你是说打印的结果数量少吗?你现在的代码有点奇怪,k 循环的时候,你只会打印最后一个rates 的结果。我猜你是不是每个循环都打印结果,那你print 那行要再缩进一下,跟if,else 对齐
没太看懂,方便把代码发出来吗