Я реализовал алгоритм динамического программирования, и я получил эту ошибку. Это мой код:TypeError: объект 'int' не является итерируемым?
def shoot(aliens):
s=[0]*10
s[0]=0
s[1]=0
for j in xrange(2,len(aliens)):
for i in xrange(0,j):
s[j]=max(s[i] + min(aliens[j],fib(j-i))) <---Error here
print s[len(aliens)-1]
return s[len(aliens)-1]
def fib(n):
if n == 0:
return 0
if n == 1:
return 1
return fib(n-1) + fib(n-2)
aliens=[1,10,10,1]
print shoot(aliens)
он говорит, что:
Traceback (most recent call last):
File "module1.py", line 30, in <module>
print shoot(aliens)
File "module1.py", line 19, in shoot
s[j]=max(s[i] + min(aliens[j],fib(j-i)))
TypeError: 'int' object is not iterable
Пожалуйста, помогите мне
UPDATE: о, я получаю это. Я имею в виду
s[j]=max(s[i] + min(aliens[j],fib(j-i)))
Но им неправильно. Итак, я отредактировал его так, но я не знаю, как использовать max(), чтобы вынуть самое большое в массиве.
b=0
for j in xrange(2,len(aliens)):
for i in xrange(0,j):
a[b]=(s[i] + min(aliens[j],fib(j-i)))
b+=1
s[j]=Largest(a[b]); <--How can I do that with Max() function
Вы пробовали 'max (a)'? – glglgl
Эта ошибка возникает также при использовании 'min (value, * set())', где второй аргумент обычно является непустым, но иногда может быть пустым. Простым обходным решением является «min (value, value, * set())». –