Я пытаюсь использовать рекурсивную функцию на Python, у меня есть эта матрица W:
[[ 13. 14. ]
[ 12. 15. ]
[ 0. 4. ]
[ 3. 6. ]
[ 7. 8. ]
[ 11. 18. ]
[ 10. 17. ]
[ 2. 23. ]
[ 5. 22. ]
[ 16. 19. ]
[ 1. 27. ]
[ 9. 21. ]
[ 25. 29. ]
[ 24. 28. ]
[ 20. 26. ]
[ 31. 32. ]
[ 30. 33. ]
[ 34. 35. ]
[ 36. 37. ]]
принцип, что для каждой строки, я получаю значения двух столбцов, если они <20, я возвращаюих, в противном случае я делаю по модулю, пока не достигну значения ниже 20. Например, у меня есть значение 35, которое> 20, поэтому 35% 20 = 15, я перехожу к строке 15, я получаю значение, если я найду его дляпример 11, я возвращаю 11, если я нахожу это 23 например, я повторяю по модулю 23% 20 = 3, я перехожу к строке 3 и так далее ... это мой код
def modulo(entier):
if entier < 20:
return(entier)
else:
c = (entier % 20)
if int(W[c,0]) < 20:
return(int(W[c,0]))
else:
a = modulo(int(W[c,0]))
return(a)
if int(W[c,1]) < 20:
return(int(W[c,1]))
else:
e = modulo(int(W[c,1]))
return(e)
i = 12
print(modulo(int(W[i,0])), modulo(int(W[i,1])))
здесь япробовал со строкой 12 матрицы, которая имеет оба значения 25 и 29, следуя принципу, функция должна возвращать 11 и 18 для значения 25 и 16 и 19 для значения 29. но в рабочем режиме программа отображает только два значения11 и 16. поэтому у меня сложилось впечатление, что он просто указывает на первый столбец матрицы, он не читает второе условие if. Надеюсь, я хорошо объяснил проблему и нашел решение. Спасибо