ルア
values = {1, 2, 3, 4, 5, 6, 7, 8, 9};
inSack = {}
total = 0;
function knapsack(i, weight)
if weight == 0 then
print("Success The following combination is in the knapsack:");
for i = 1, #inSack do
total = total + inSack[i];
print(inSack[i]);
end
print("Totaling to Input of: "..total)
return
elseif i <= 0 then
print("Sorry your weight combination, is not possible with the current values ");
return;
end
if values[i] > weight then
return knapsack(i-1, weight);
else
inSack[#inSack + 1] = values[i];
return knapsack(i-1, weight - values[i]);
end
end
-- Waits for user input to terminal
local number = io.read()
knapsack(#values, tonumber(number));
私のPythonコード
values = [1,2,3,4,5,6,7,8,9]
inSack = []
total = 0
def knapsack(i,weight):
if weight == 0:
print("success: ")
for i in inSack:
total = total +inSack[i]
print(inSack[i])
print("totaling to input of: "+total)
return
elif i<= 0:
print("didn't work yo")
return
if values[i] > weight:
return knapsack(i-1, weight)
else:
inSack[inSack+1] = values[i]
return knapsack(i-1, weight - values[i])
number = raw_input("Enter a number: ")
knapsack(values, number)
if values[i] > weight
Python に移植したステートメントでエラーが発生します。私が犯している間違いは何ですか?
トレースバック
Traceback (most recent call last):
File "lua.py", line 23, in <module>
knapsack(values, number)
File "lua.py", line 16, in knapsack
if values[i] > weight:
TypeError: list indices must be integers, not list