在python中使用递归函数
我尝试在python上使用递归函数,我有一个矩阵W:在python中使用递归函数,python,recursion,Python,Recursion,我尝试在python上使用递归函数,我有一个矩阵W: [[ 13. 14. ] [ 12. 15. ] [ 0. 4. ] [ 3. 6. ] [ 7. 8. ] [ 11. 18. ] [ 10. 17. ] [ 2. 23. ] [ 5. 22. ] [ 16.
[[ 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,那么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])))
def模(entier):
如果entier<20:
返回(完整)
其他:
c=(全部%20)
如果int(W[c,0])<20:
返回值(int(W[c,0]))
其他:
a=模(int(W[c,0]))
报税表(a)
如果int(W[c,1])<20:
返回(int(W[c,1]))
其他:
e=模(int(W[c,1]))
返回(e)
i=12
打印(模(int(W[i,0])),模(int(W[i,1]))
在这里,我尝试了矩阵的第12行,它有25和29两个值,遵循原则,函数必须返回11和18作为值25,16和19作为值29。但在运行中,程序仅显示两个值11和16。我的印象是,它只指向矩阵的第一列,而不读取第二个if条件。我希望我能很好地解释这个问题,并找到解决办法。谢谢这听起来像是一个反复的过程。为什么要使用递归?@KlausD。老实说,对我来说,这听起来是重复的。但我不能确定,因为解释不完整。例如,两个数字小于20意味着什么?其中一个?二者都哪一个?此外,函数的参数似乎是一个数字,而不是两个数字。因为我每次都需要进行模运算,直到值小于20为止,只要它找到一个更高的值,它就会重复该过程,直到值小于20为止。这里我做的是一个20线的小基数,但之后我将把同样的原理应用到一个更大的基数上base@KonradRudolph我希望每一行对两个值(两列)应用相同的原则@student,太好了,发布代码,在其中迭代矩阵,调用函数并获得预期结果