Ua loaʻa paha ʻoe i kahi pōʻai pau ʻole kahi e hoʻomau ai ka pilikia i nā lālā liʻiliʻi?
Inā pēlā, ua hele paha ʻoe i ka honua hoihoi o ka recursion. ʻOiai paha he mea paʻakikī ke hoʻomaopopo, mai hopohopo! Ma kēia pou, e hele mākou i kahi huakaʻi hoihoi e aʻo e pili ana i nā ʻano recursions.
No laila e hoʻopaʻa i ka wā e ʻimi ai mākou i nā ala recursive he nui. E hoʻomākaukau e komo i ke aupuni hoihoi o ka recursion a nānā i kona hiki ke hoʻoponopono i nā pilikia paʻakikī.
He aha nā Recursions Pono?
Ma nā huaʻōlelo maʻamau, ʻo ka recursion kahi ʻenehana hoʻolālā ikaika e loaʻa ana kahi hana e kāhea ana iā ia iho i ka wā o ka hoʻokō. Ua like ia me ka nānā ʻana i loko o ke aniani a ʻike i kahi kiʻi i loko o kahi kiʻi, e loaʻa ana i kahi pōʻai hōʻike pilikino.
Hiki iā mākou ke hoʻoponopono i nā pilikia nui me ka hoʻohana ʻana i ka recursion ma ka hoʻokaʻawale ʻana iā lākou i lalo i nā pilikia liʻiliʻi a hiki ke hoʻokele.
Ua like ia me ka hoʻohui ʻana i kahi jigsaw, kahi e hoʻopili ai kekahi ʻāpana i nā ʻāpana ʻē aʻe e hana i ke kiʻi piha. Hāʻawi ka Recursion iā mākou e hoʻoponopono i nā pilikia ma ke ʻano nani a maikaʻi hoʻi ma ka hana hou ʻana i nā ʻōkuhi like me nā mea hoʻokomo like ʻole.
1-Hoʻihoʻi pololei
ʻO ka hoʻihoʻi pololei ʻana ke ʻano maʻamau o ka recursion, kahi e kāhea pololei ai kahi hana iā ia iho. Hoʻopili ia i ka hoʻokaʻawale ʻana i kahi pilikia pilikia i nā subproblems liʻiliʻi a hiki i ka loaʻa ʻana o kahi hihia kumu, kahi e hoʻopau ai.
Kāhea ka hana recursive iā ia iho me nā mea hoʻokomo like ʻole, e hiki ai ke hoʻokō i nā ʻōkuhi like e hana hou ʻia. Hoʻokumu ʻia kēlā me kēia pule ma luna o ka mea mua, e kokoke ana i ka hihia kumu e hoʻopau ai i ka recursion.
E nānā kākou i kēia laʻana.
def countdown(n):
if n <= 0:
return
print(n)
countdown(n - 1)
countdown(5)
Hana:
5
4
3
2
1
2-Hoʻihoʻi pololei ʻole
Hoʻohui ʻia ka hoʻihoʻi ʻole ʻana i kahi wili hoihoi i ke ala recursive. ʻOkoʻa me ka hoʻihoʻi pololei ʻana, e pili ana i kahi hana i kapa ʻia ʻo ia iho, ʻo ka hoʻihoʻi ʻole ʻia he kaulahao o nā kelepona hana.
Kāhea kekahi hana i kekahi, a laila hiki ke kāhea i ka hana kumu a i ʻole kekahi hana ʻē aʻe i hoʻi hope i ka hana kumu. Hāʻawi kēia pūnaewele pili o nā kelepona hana i kahi hula hoʻohiwahiwa kahi e hui pū ai kekahi mau hana e hoʻoponopono i kahi pilikia.
la'ana:
def function_A(n):
if n > 0:
print("A:", n)
function_B(n - 1)
def function_B(n):
if n > 0:
print("B:", n)
function_A(n - 1)
function_A(3)
Hana:
A: 3
B: 2
A: 1
3-Linear Recursion
E noʻonoʻo i kahi huakaʻi ma ke ala pololei, hoʻokahi ʻanuʻu i ka manawa, a hiki i kāu pahuhopu. Hoʻokomo ʻia kēia ʻano hana e ka linear recursion, kahi e hana ai kahi hana i hoʻokahi kelepona recursive i kēlā me kēia ʻano hana.
Me kēlā me kēia kelepona recursive, ke kaʻina hana recursive neʻe kokoke i kahi kumu kumu ma ka hoʻohaʻahaʻa ʻana i ka nui o ka hoʻopuka. Hoʻomaka ia ma ke ʻano maʻalahi a me ka laina, e hoʻoponopono i nā pilikia i kēlā me kēia manawa a hiki i ka pane hope loa.
la'ana:
def factorial(n):
if n == 0:
return 1
return n * factorial(n - 1)
result = factorial(5)
print(result)
Hana:
120
4-Laau Recursion
Ke komo ka hana i kekahi mau kelepona recursive, komo mākou i ke ao o ka lāʻau recursion. Hoʻopuka ka hana i ka hoʻihoʻi kumu lāʻau i nā kelepona recursive he nui, e hoʻoponopono kēlā me kēia i kahi subproblem kaʻawale, e like me nā lālā o ka lāʻau.
Hāʻawi kēia lālā lālā i ka hoʻokolokolo like ʻana o kekahi mau ala, me ka hoʻokaʻawale pono ʻana i nā pilikia paʻakikī i loko o nā ʻāpana liʻiliʻi, pili.
la'ana:
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n - 1) + fibonacci(n - 2)
result = fibonacci(6)
print(result)
Hana:
8
5-Nested Recursion
Hoʻohui ka nested recursion i kahi pae hoihoi o ka paʻakikī i ke ao holoʻokoʻa. Ma kēia ʻano o ka hoʻihoʻi hou ʻana, hoʻokomo kahi hana i kahi kāhea recursive ma ke ʻano he hoʻopaʻapaʻa i loko o kahi kelepona recursive ʻē aʻe.
Hana ʻia ke kelepona recursive i loko ma luna o kahi waiwai i hilinaʻi ʻia ma ke kelepona recursive waho. Piʻi ka paʻakikī me kēlā me kēia noi pūnana, e hoʻopau ana i kahi hiʻohiʻona hoihoi o nā kelepona recursive pūnana.
la'ana:
def nested_recursion(n):
if n > 100:
return n - 10
return nested_recursion(nested_recursion(n + 11))
result = nested_recursion(95)
print(result)
Hualoaʻa:
91
6-Huʻu Huʻu
ʻO ka hoʻihoʻi ʻana o ka huelo he ʻano loiloi no nā algorithm recursive hiki ke hoʻomaikaʻi i kā lākou hana. Hōʻike ʻia ke kāhea recursive ma ke ʻano he hana hope loa o kahi hana me ka recursion huelo, hana.
No ka mea, ʻaʻohe hana koʻikoʻi ma hope o ke kāhea recursive, hiki i ka mea hōʻuluʻulu a unuhi ʻōlelo ke maʻalahi i ka recursion ma ke pani ʻana me kahi lele maʻalahi.
ʻO kēia ala hoʻolālā, ʻike ʻia ʻo ka tail call optimization, e hōʻemi ana i ka pono no kēlā me kēia kelepona recursive e mālama i kahi pahu hoʻopaʻa, e hopena i ka wikiwiki a me ka hoʻohana haʻahaʻa haʻahaʻa.
la'ana:
def tail_factorial(n, result=1):
if n == 0:
return result
return tail_factorial(n - 1, result * n)
result = tail_factorial(5)
print(result)
Ma waho:
120
7-Hōʻole Huelo Recursion
ʻAʻole like me ka hoʻihoʻi ʻana o ka huelo, ʻo ka recursive non-tail e pili ana i nā hana hou i hana ʻia ma hope o ke kāhea recursive i loko o kahi hana. Ma mua o ka hana ʻana i nā hana hou aʻe, pono e hoʻopau a hoʻi i kēlā me kēia kelepona recursive.
ʻO ka hopena, a hiki i ka hihia kumu a hoʻopau i ka recursion, mālama ʻia kahi pūʻulu o nā hana koʻikoʻi. Hoʻohana pinepine ka hoʻihoʻi ʻole i ka huelo i ka hoʻomanaʻo a ʻoi aku ka maikaʻi ma mua o ka hoʻihoʻi ʻana o ka huelo, akā he mea kōkua mau ia no ka hoʻoponopono ʻana i nā pilikia like ʻole.
la'ana:
def non_tail_sum(n):
if n == 0:
return 0
return n + non_tail_sum(n - 1)
result = non_tail_sum(5)
print(result)
Hana:
15
Hoʻopau
ʻO ka Recursion kahi manaʻo hoihoi i ka papahana. Hāʻawi ia iā mākou e hoʻoponopono i nā pilikia paʻakikī ma ke ʻano recursive, hoʻohālikelike ponoʻī.
Hāʻawi ia i kahi ala ʻokoʻa o ka noʻonoʻo ʻana a me ka hoʻoponopono ʻana i nā pilikia, e wāwahi iā lākou i lalo i nā ʻāpana liʻiliʻi a hiki ke hoʻokele ʻia. I ka hana ʻana me ka recursion, akā, he mea koʻikoʻi e hoʻohana i ka nānā ʻana i kekahi mau kiko.
Pono ʻoe e ʻike i nā hihia kumu kūpono e hiki ai ke hoʻopau i ka recursion. Inā ʻaʻole lākou, hiki i ka hana ke hoʻomau i ke kapa ʻana iā ia iho a mau loa.
ʻO ka lua, e pili ana i ka hiʻohiʻona ma ka lima, ke koho ʻana i ke ʻano kūpono o ka recursion hiki ke alakaʻi i nā hopena ʻoi aku ka maikaʻi a me ka nani. E ho'āʻo e ʻimi i ka mea kūpono no ka pilikia ma ka lima. I ka hana ʻana me ka hohonu recursion nui, e makaʻala i nā pōʻino e like me ke kahe ʻana o ka puʻu.
Waiho i ka Reply