Я работаю с двумя трехмерными массивами, для которых второе значение изменяется в зависимости от первого значения.
Я пытаюсь превратить двойной цикл for в рекурсивную функцию, но повторяется та же ошибка, RecursionErroe: превышена максимальная глубина рекурсии в сравнении.
Циклы for, которые я пытаюсь преобразовать:
def to_rec(arr):
new = arr.copy()
row_max = len(arr)
col_max = len(arr[0])
for i in range(row_max):
for j in range(col_max):
new[i, j, :] = 255- arr[i, j, :]
return new
RECURSIVE
def rec2(img, row_max, col_max, i, j, new):
if j == col_mac:
return new
else:
new[i, j, :] = 255 - img[i, j, :]
return rec2(img, row_max, col_max, i, j+1, new)
****************************************************
def rec1(img, row_max, col_max, i, j, new):
if i == row_max:
return new
else:
rec2(img, row_max, col_max, i, j, new)
return rec1(img, row_max, col_max, i+1, 0, new)
********************************************************
def to_rec(arr):
......
# The same data as in to_rac func with the for loop
......
new = rec1(arr, row_max, col_max, 0, 0, new)
return new
Я не могу понять, что не так