Kua mau koe i roto i te huringa ahua kore e mutu ka pakaru tonu te raru ki nga kongakonga iti?
Mena ka penei, kua tae mai pea koe ki te ao whakahirahira o te recursion. Ahakoa te ahua he uaua ki te mohio, kaua e manukanuka! I roto i tenei pou, ka haere tatou i runga i tetahi haerenga whakamere ki te ako mo nga momo recursions.
No reira whakaahuru i a maatau e torotoro ana i nga huarahi maha. Whakapaia ki te kuhu ki te ao whakamihi o te recursion me te mataki i tona kaha whakamiharo ki te whakaoti i nga take uaua.
He aha nga Recursions?
I roto i nga kupu matua, ko te recursion he tikanga whakamaarama kaha kei roto he mahi e karanga ana i te wa e mahia ana. He rite ki te titiro ki te whakaata me te kite i tetahi ahua i roto i te ahua, ka puta he huringa tohutoro-whaiaro.
Ka taea e tatou te tarai i nga take nui ma te whakamahi i te recursion ma te wehewehe ki nga raru iti ake, ka taea te whakahaere.
He rite tonu ki te whakahiato i te kirikiri, ka hono tetahi wahi ki etahi atu waahanga hei hanga pikitia katoa. Ko te Recursion ka taea e tatou te whakaoti take i runga i te huatau me te whai hua ma te whakahoki ano i nga huinga tohutohu me nga momo whakaurunga.
1-Whakahoki Tika
Ko te recursion tika te momo tino taketake o te recursion, e karanga tika ana tetahi mahi. Ka whai waahi ki te wehewehe i tetahi rapanga raru ki nga rapanga iti ake kia tutuki ra ano tetahi take, ka mutu.
Ka karanga te mahi recursive ki a ia ano me nga momo whakaurunga, e taea ai te mahi o taua huinga tohutohu ki te tukurua. Ka hangai ia karangatanga ki runga i te mea o mua, ka tata haere tonu ki te take turanga e mutu ai te recursion.
Kia tirohia tenei tauira.
def countdown(n):
if n <= 0:
return
print(n)
countdown(n - 1)
countdown(5)
Whakaputa:
5
4
3
2
1
2-Whakahoki Autaki
Ko te recursion autaki ka taapiri atu i te awhi hihiko ki te ara recursive. He rereke ki te hokinga tika, e uru ana ki tetahi taumahi e karanga ana i a ia ano, ko te recursion autaki he mekameka waea mahi.
Ka karanga tetahi mahi ki tetahi atu, ka taea te karanga i te mahi taketake, tetahi atu mahi ranei ka hoki ano ki te taketake. Ko tenei tukutuku honohono o nga waea mahi ka whakaputa i te kanikani whakahihiri e mahi tahi ai etahi mahi ki te whakatika i tetahi raru.
tauira:
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)
Whakaputa:
A: 3
B: 2
A: 1
3-Rinear Recursion
Whakaarohia he haerenga ki raro i te huarahi tika, kotahi taahiraa i ia wa, kia tae ra ano koe ki to whainga. Ko tenei tikanga raupapa e mau ana i te recursion linear, e mahi ana tetahi mahi i te waea recursive kotahi i ia whitiwhiti mahi.
Ki ia waea recursive, ka neke tata te tukanga recursive ki tetahi take turanga ma te whakaheke i te rahi o te take. Ka haere ma te marama me te ahorangi, ka whakatau takitahi i nga rapanga iti kia tae ra ano te whakautu whakamutunga.
tauira:
def factorial(n):
if n == 0:
return 1
return n * factorial(n - 1)
result = factorial(5)
print(result)
Whakaputa:
120
4-Rakau Recursion
Ina peka mai tetahi mahi ki etahi waea recursive, ka uru tatou ki te ao o te recursive rakau. Ko te mahi i roto i te recursion rakau ka whakaputa i te maha o nga waea recursive, ma ia mea e whakaoti rapanga iti motuhake, pera i nga manga o te rakau.
Ma tenei hanganga manga ka taea te tirotiro i te wa kotahi mo nga huarahi maha, ka taea te wawahi i nga take uaua ki nga waahanga iti ake, hono tahi.
tauira:
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n - 1) + fibonacci(n - 2)
result = fibonacci(6)
print(result)
Whakaputa:
8
5-Kohanga Recursion
Ko te recursion kohanga ka taapiri i te taumata whakaihiihi o te uaua ki te ao hurihuri. I roto i tenei ahua o te recursive, he mahi ka whakauru i te waea recursive hei tohenga i roto i tetahi atu waea recursive.
Ko te waea recursive o roto ka mahi i runga i te uara e whakawhirinaki ana ki te waea recursive o waho. Ka piki ake te uaua ki ia karangatanga kohanga, ka mutu i roto i te tauira whakahirahira o nga waea recursive kohanga.
tauira:
def nested_recursion(n):
if n > 100:
return n - 10
return nested_recursion(nested_recursion(n + 11))
result = nested_recursion(95)
print(result)
Hua:
91
6-Tail Recursion
Ko te hokinga o te hiku he tikanga arotautanga mo nga algorithm recursive hei whakapai ake i o raatau mahi. Ko te karanga recursive puta rite te mahi whakamutunga o te mahi ki te hiku recursion, hanga.
Na te mea karekau he mahi tino pai i muri mai i te waea recursive, ka taea e te kaikoipi, kaiwhakamaori ranei te whakangawari i te recursion ma te whakakapi ki te peke ngawari.
Ko tenei huarahi arotautanga, e mohiotia ana ko te arotautanga waea hiku, ka whakaiti i te hiahia mo ia waea recursive ki te pupuri i te anga puranga, ka hua ake te tere tere me te iti o te whakamahinga mahara.
tauira:
def tail_factorial(n, result=1):
if n == 0:
return result
return tail_factorial(n - 1, result * n)
result = tail_factorial(5)
print(result)
Ki waho:
120
7-Kore-Tail Recursion
He rereke ki te hokinga o te hiku, ko te hokinga hiku-kore he mahi taapiri i mahia i muri i te waea recursive i roto i tetahi mahi. I mua i te mahi i etahi atu mahi, me whakaoti ia waea tukurua ka hoki mai.
Ko te mutunga mai, kia tae ra ano te take turanga me te mutunga o te hokinga mai, ka mau tonu te puranga o nga mahi tino pai. He maha nga wa ka nui ake te mahara o te recursion kore-hiku, he iti ake te pai i te recursion hiku, engari he taputapu awhina tonu mo te tarai i nga momo take.
tauira:
def non_tail_sum(n):
if n == 0:
return 0
return n + non_tail_sum(n - 1)
result = non_tail_sum(5)
print(result)
Whakaputa:
15
Whakamahia te Up
Ko te Recursion he ariā whakahihiri i roto i te kaupapa. Ka taea e taatau ki te tarai i nga raru uaua i roto i te recursive, whaiaro tohutoro.
He huarahi motuhake mo te whakaaro me te whakaoti rapanga, ka wehewehea ki nga wahanga iti ake, ka taea te whakahaere. I te wa e mahi ana me te recursion, he mea nui kia aro nui ki etahi waahanga.
Me tautuhi koe i nga keehi turanga e taea ai te whakamutua te whakahokinga. Ki te kore ratou i reira, ka karanga tonu te mahi ake ake ake.
Tuarua, i runga i te ahuatanga o te waahi, ma te kowhiri i te ahua o te recursion e tika ana ka puta he otinga pai ake, huatau. Ngana ki te rapu he aha te mea e pai ana mo te raru o te ringaringa. I te wa e mahi ana me te hohonutanga o te recursion, kia mohio koe ki nga mea kino penei i te puhake o te puranga.
Waiho i te Reply