>> ZAMYLA: D'fhonn tuiscint a fháil ar athchúrsáil, ní mór duit
an chéad a thuiscint athchúrsáil.
Ag athchúrsáil i modhanna dearadh cláir go bhfuil tú féin-referential
sainmhínithe.
Struchtúir sonraí recursive, mar shampla, Tá struchtúir sonraí a
Áirítear iad féin i n-sainmhínithe.
Ach lá atá inniu ann, táimid ag dul chun díriú ar feidhmeanna Athchúrsach.
>> Thabhairt chun cuimhne go nglacfaidh feidhmeanna ionchur, argóintí, agus luach mar filleadh ar a gcuid
aschur arna ionadú ag an léaráid anseo.
Beidh muid smaoineamh ar an bhosca mar an comhlacht ar an fheidhm, ina bhfuil an tacar
treoracha a léirmhíniú ionchur agus aschur a chur ar fáil.
Ag tabhairt le breathnú níos dlúithe taobh istigh an comhlacht ar d'fhéadfaí an fheidhm glaonna nochtann le
feidhmeanna eile chomh maith.
Tóg an fheidhm simplí, foo, go Bíonn ar shraith amháin mar ionchur agus
priontaí cé mhéad litreacha Tá an teaghrán.
An strlen fheidhm, le haghaidh fad teaghrán, ar a dtugtar, a bhfuil aschur is
ag teastáil le haghaidh an glaoch chun printf.
>> Anois, cad a dhéanann feidhm athchúrsach Is speisialta a iarrann sé é féin.
Is féidir linn a léiriú seo athchúrsach glaoch ar leis an arrow oráiste
looping ar ais go dtí féin.
Ach forghníomhaitheach féin arís beidh ach dhéanamh glaoch athchúrsach eile, agus
eile agus eile.
Ach na feidhmeanna Athchúrsach Ní féidir a bheith gan teorainn.
Tá siad go deireadh ar bhealach, nó do Beidh an clár a reáchtáil go deo.
>> Mar sin, ní mór dúinn a fháil ar bhealach a bhriseadh as na glaonna recursive.
Tugaimid seo an cás bonn.
Nuair a bhíonn an coinníoll gcás bonn le chéile, Filleann an fheidhm a dhéanamh gan
glaoch athchúrsach eile.
Tóg an fheidhm seo, Hi, feidhm neamhní go nglacann ina slánuimhir n chomh ionchur.
Tagann an cás bonn ar dtús.
Má tá níos lú ná náid n, fo cló agus ar ais Do gach cás eile, an
Beidh feidhm phriontáil Hi agus a fhorghníomhú an glaoch athchúrsach.
Glao eile ar an Hi feidhm le luach ionchur decremented.
>> Anois, cé a phriontáil againn Hi, an Ní bheidh feidhm deireadh go dtí go againn
ar ais dá chineál ar ais, sa chás seo ar neamhní.
Mar sin, le haghaidh gach n eile seachas an cháis bonn, Beidh an fheidhm seo Hi Hi ais
n lúide 1.
Ós rud é go bhfuil an fheidhm seo ar neamhní áfach, táimid ag Ní bheidh cineál sainráite ar ais anseo.
Beidh muid a fhorghníomhú ach an fheidhm.
Mar sin, ag iarraidh Hi (3) Beidh phriontáil Hi agus fhorghníomhú Hi (2) a fhorghníomhú Hi (1) amháin
a fhorghníomhú Hi (0), i gcás ina an Tá coinníoll gcás bonn le chéile.
Mar sin, Hi (0) priontaí fo agus tuairisceáin.
>> OK.
Mar sin anois go dtuigimid an Basics of feidhmeanna Athchúrsach, gur gá dóibh
gcás bonn amháin ar a laghad chomh maith le glao athchúrsach, a ligean ar bogadh ar aghaidh go dtí
Mar shampla níos mó brí.
Amháin nach ar ais ach neamhní is cuma cén.
>> A ligean ar ghlacadh le breathnú ar an factorial oibríocht is coitianta a úsáidtear i
ríomhaireachtaí dóchúlacht.
Is factorial n an táirge ar gach slánuimhir dheimhneach níos lú ná
agus cothrom le n.
Tá cúig Mar sin, factorial 5 huaire 4 huaire 3 huaire 2 uair 1 a thabhairt 120.
Tá ceithre factorial 4 huaire 3 huaire 2 uair 1 a thabhairt 24.
Agus feidhm ag an riail chéanna d'aon slánuimhir dheimhneach.
>> Mar sin, conas a d'fhéadfadh muid a scríobh athchúrsach fheidhm a ríomh, ríomhann an factorial
roinnt?
Bhuel, beidh orainn gá a aithint idir an bunchás agus an glaoch athchúrsach.
Beidh an glao athchúrsach mar an gcéanna do gach cás ach amháin i gcás an bonn
cás, rud a chiallaíonn go beidh orainn a patrún a aimsiú a thabhairt dúinn ár n-
toradh inmhianaithe.
>> Mar shampla, seo, a fheiceáil conas 5 factorial Baineann iolrú faoi 4 3 2 1 faoi
Agus go iolrú-céanna Tá fáil anseo, an
sainmhíniú 4 factorial.
Mar sin, feicimid go bhfuil 5 factorial ach 5 uaire 4 factorial.
Anois a dhéanann an patrún feidhm ag go 4 factorial chomh maith?
Tá.
Feicimid go bhfuil 4 factorial an iolrú 3 huaire 2 uair 1, an
sainmhíniú an-céanna le 3 factorial.
Mar sin, tá 4 factorial cothrom le 4 huaire 3 factorial, agus mar sin de agus mar sin de ár
bataí patrún go dtí an 1 factorial, a de réir sainmhínithe, atá cothrom le 1.
>> Níl aon dearfacha eile slánuimhreacha ar chlé.
Mar sin, ní mór dúinn an patrún do ár glaoch athchúrsach.
n Tá factorial cothrom le amanna n an factorial n lúide 1.
Agus ár gcás bonn?
Beidh sé sin a bheith díreach ár sainmhíniú de 1 factorial.
>> Mar sin, anois is féidir linn bogadh ar aghaidh go dtí scríbhinn cód le haghaidh an fheidhm.
Maidir leis an gcás bonn, beidh orainn an coinníoll n ionann ionann 1, i gcás ina
beidh muid ar ais 1.
Ansin, ag bogadh isteach ar an glaoch athchúrsach, beidh muid ar ais amanna n na
factorial n lúide 1.
>> Anois, a ligean ar thástáil ár.
A ligean ar iarracht factorial 4.
Per ár fheidhm is comhionann go dtí 4 uaire factorial (3).
Factorial (3) is comhionann le 3 huaire factorial (2).
Factorial (2) is comhionann le 2 uair factorial (1), atá ar ais 1.
Factorial (2) Filleann anois 2 uair 1, 2.
Factorial (3) Is féidir le filleadh anois 3 huaire 2, 6.
Agus ar deireadh, factorial (4) Filleann 4 huaire 6, 24.
>> Má tá tú ag dréim le haon deacracht leis an glaoch athchúrsach, ligean orthu go
Oibríonn an fheidhm cheana féin.
Cad a chiallaíonn mé leis seo is gur chóir duit muinín do chuid glaonna recursive a thabhairt ar ais
na luachanna ceart.
Mar shampla, má tá a fhios agam go factorial (5) is ionann agus 5 uaire
factorial (4), tá mé ag dul ar iontaoibh factorial (4) a thabhairt dom 24.
Cuimhnigh ar sé mar athróg, má tá tú Beidh, amhail is dá mba a shainmhínítear agat cheana féin
factorial (4).
Mar sin, le haghaidh aon factorial (n), tá sé an táirge n agus
an factorial roimhe sin.
Agus seo factorial roimhe fhaightear trí ghlaoch
factorial n lúide 1.
>> Anois, féach an féidir leat a chur i bhfeidhm Athchúrsach feidhmiú duit féin.
Luchtaigh suas do teirminéil, nó run.cs50.net, agus suim feidhm a scríobh
go nglacann slánuimhir n agus tuairisceáin an suim de gach dearfach i ndiaidh a chéile
slánuimhreacha ó n 1.
Scríobh mé amach na suimeanna roinnt Luachanna chun cabhrú leat ár.
Gcéad dul síos, figiúr amach an coinníoll gcás bonn.
Ansin, breathnú ar an tsuim (5).
An féidir leat a chur in iúl dó i dtéarmaí den tsuim eile?
Anois, cad faoi tsuim (4)?
Conas is féidir leat a chur in iúl tsuim (4) i dtéarmaí suim eile?
>> Nuair a bheidh tú suim (5) agus tsuim (4) arna shloinneadh i dtéarmaí suimeanna eile, féach ar
más féidir leat a aithint ar patrún do shuim (n).
Más rud é nach, déan iarracht cúpla uimhreacha eile agus a n-suimeanna i iúl
dtéarmaí uimhreacha eile.
Trí patrúin a aithint le haghaidh scoite uimhreacha, tá tú go maith ar do bhealach a
aithint an patrún d'aon n.
>> Recursion tá uirlis chumhachtach i ndáiríre, mar sin ar ndóigh, nach bhfuil sé teoranta dóibh
feidhmeanna matamaiticiúla.
Is féidir athchúrsáil a úsáid go han-éifeachtach agus iad ag déileáil le crainn mar shampla.
Amharc ar an gearr ar chrainn le haghaidh athbhreithniú níos críochnúla, ach do anois
thabhairt chun cuimhne go crainn cuardaigh dénártha, i go háirithe, atá déanta suas de nóid, gach
le luach agus dhá threo nód.
De ghnáth, is é seo ionadaíocht ag an nód tuismitheoir a bhfuil dírithe líne amháin
leis an nód leanbh ar chlé agus ceann leis an nód leanbh ceart.
An struchtúr cuardach dénártha lends crann féin go maith
le cuardach athchúrsach.
An glao athchúrsach Gabhann ceachtar sa chlé nó an nód ceart, ach tá níos mó
sin sa ghearrthéarma gcrann.
>> Abair gur mhaith leat a dhéanamh ar oibríocht ar gach nód amháin i gcrann dénártha.
Cén chaoi a bhféadfaí tú ag dul faoi sin?
Bhuel, d'fhéadfaí tú a scríobh athchúrsach feidhm go ndéanann an oibríocht
ar an nód tuismitheoir agus a dhéanann athchúrsach cuairt a thabhairt ar an fheidhm chéanna,
dul i chlé agus nóid leanbh ceart.
Mar shampla, an fheidhm seo, foo, go athruithe ar an luach a bhaineann le nód a tugadh agus
gach ceann dá chuid leanaí chun 1.
An cás bonn de cúiseanna nód null an fheidhm a thabhairt ar ais, rud a léiríonn
nach bhfuil aon nóid fágtha san fho-crann.
>> A ligean ar siúl tríd.
Is é an chéad tuismitheoir 13.
Athrú againn ar an luach a 1, agus ansin glaoch ar ár bhfeidhm ar an taobh clé chomh maith
leis an gceart.
Is é an fheidhm, foo, ar a dtugtar ar thaobh na láimhe clé an chéad fho-crann, mar sin an nód chlé
Beidh a athshannadh go dtí 1 agus foo beidh ar a dtugtar ar na páistí go nód ar,
ar dtús leis an chlé agus ansin an ceart, agus mar sin de agus mar sin de.
Agus insint dóibh nach bhfuil brainsí ar bith níos mó páistí sin an próiseas céanna
leanfaidh sé ar aghaidh do na páistí ceart go dtí go bhfuil nóid an crann ar fad ar
athshannadh 1.
>> Mar is féidir leat a fheiceáil, nach bhfuil tú teoranta chun amháin glaoch athchúrsach.
Díreach mar go mbeidh go leor mar a fháil ar an post a dhéanamh.
Cad a tharlaíonn má bhí tú crann i gcás gach Bhí triúr leanaí nód,
Clé, lár, agus an ceart?
Conas a bheadh ​​leat in eagar foo?
Bhuel, simplí.
Just a cuir glaoch athchúrsach eile agus pas a fháil sa pointeoir nód lár.
>> Tá recursion an-chumhachtach agus gan trácht galánta, ach is féidir é a bheith ina
coincheap deacair ar dtús, mar sin a bheith othar agus a ghlacadh do chuid ama.
Tosaigh leis an gcás bonn.
Tá sé de ghnáth an éasca a aithint, agus ansin is féidir leat a bheith ag obair
ar gcúl ó ann.
Tá a fhios agat is gá duit a bhaint amach do gcás bonn, ionas go d'fhéadfadh
a thabhairt duit cúpla leideanna.
Bain triail as a chur in iúl i gcás ceann amháin acu téarmaí gcásanna eile, nó i bhfo-Leagann.
>> Go raibh maith agat chun breathnú ar seo gearr.
Ar a laghad, anois is féidir leat scéalta grinn mar seo a thuiscint.
Is é mo ainm Zamyla, agus tá sé seo cs50.
>> Tóg an fheidhm seo, Hi, ina feidhm neamhní a thógann
ina slánuimhir, n, mar ionchur.
Tagann an cás bonn ar dtús.
Má tá níos lú ná 0 n, cló "Beannacht" agus ar ais.