GLOBAL KNOWLEDGE ARK

Matematika · Straipsnis

Rekurentinės priklausomybės ir rekursinis skaičiavimas

Pasiekite tam tikrą laiptų aukštį žengdami po vieną arba dvi pakopas, tada suskaičiuokite užlipimo būdus pašalindami paskutinį žingsnį. Apibrėžkite indeksuotas sekas su būtinomis pradinėmis reikšmėmis, pagrįskite rekursinio skaičiavimo atvejus, išveskite paprastas uždarąsias formules ir atskirkite pakartotinį skaičiavimą nuo skirtingų rezultatų.

Grįžti į matematiką

Perskaitę galėsite

  • Prieš skaičiuojant sekos narius, nurodyti sekos indeksų sritį, rekurentinės priklausomybės galiojimo sritį ir pradines reikšmes.
  • Išvesti skaičiavimo rekurentines priklausomybes remiantis nesikertančiais, visas galimybes apimančiais atvejais ir grįžtamomis mažesnės apimties rezultatų konstrukcijomis.
  • Paaiškinti tuščiąjį rezultatą ir indeksų poslinkius tarp užlipimo būdų skaičių, apribojimus tenkinančių simbolių eilučių ir Fibonačio skaičių.
  • Išvesti ir patikrinti aritmetinių bei geometrinių sekų ir paprastų nehomogeninių rekurentinių priklausomybių formules, įtraukiant išimtinius parametrų atvejus.
  • Palyginti rekursinių iškvietimų medį, saugomą lentelę ir uždarąją formulę nekeičiant to, kas skaičiuojama.
01

Skaičiuokite trumpo užlipimo būdus pagal paskutinį žingsnį

Pradėję nuo nulinio aukščio, pasiekite trijų vienetų aukštį vieno arba dviejų vienetų žingsniais. Užrašykite jų tvarką. Galimi sąrašai yra (1,1,1), (1,2) ir (2,1): trys rezultatai. Sąrašai (1,2) ir (2,1) atitinka skirtingus tarpinius aukščius, todėl tai skirtingi užlipimo būdai.

Pašalinus paskutinį žingsnį iš užlipimo, kuris baigiasi vienos pakopos žingsniu, lieka užlipimas į dviejų vienetų aukštį. Jei užlipimas baigiasi dviejų pakopų žingsniu, lieka užlipimas į vieno vieneto aukštį. Šie du paskutinio žingsnio atvejai negali sutapti, o kiekvienas užlipimas baigiasi vienu iš šių žingsnių.

Visos baigtinio rekursinio skaičiavimo baigtysKiekviena įrėminta eilutė yra viena žingsnių seka arba lygiavertis juostos išklojimas plytelėmis. Plytelių plotis tiksliai atitinka vieną arba du vienodus vienetinius langelius. Kai n yra ne mažesnis už du, brūkšninis oranžinis rėmelis žymi paskutinį dviejų pakopų ėjimą, o ištisinis mėlynas rėmelis – paskutinį vienos pakopos ėjimą.n = 3Mėlynas ištisinis / oranžinis brūkšninis: pabaigos atvejai111(1,1,1)12(1,2)21(2,1)
Visos baigtys ir jų pabaigos atvejai
BaigtisAtvejis
(1,1,1)Paskutinis žingsnis: 1
(1,2)Paskutinis žingsnis: 2
(2,1)Paskutinis žingsnis: 1

Į dviejų vienetų aukštį galima užlipti dviem būdais: (1,1) ir (2), o į vieno vieneto aukštį – vienu būdu: (1). Taigi užlipimo į trijų vienetų aukštį būdų skaičius yra 2+1 = 3. Didesnio uždavinio rezultatus galime suskaičiuoti naudodamiesi mažesnių to paties uždavinio variantų rezultatų skaičiais.

02

Prieš išvesdami bendrąją formulę, sudarykite trumpą lentelę

Dar kartą peržiūrėkite pamoką „Skaičiavimas, nulis ir natūralieji skaičiai“, kad atskirtumėte baigčių nebuvimą nuo vienos tuščios baigties. Pamoka „Sudėtis ir atimtis“ padeda sujungti nesikertančius atvejus. Remkitės pamoka „Formulės ir paprastų ryšių pertvarkymas“, kad pakeistumėte kintamąjį nurodyta reikšme išlaikydami formulės struktūrą.

Ankstesnėse pamokose apie skaičiavimą taikant sumos ir sandaugos taisykles bei įrodymą indukcijos metodu plėtojami naudingi metodai. Čia reikalingos idėjos paaiškinamos vietoje: sudėkite tik nesikertančių ir visas baigtis apimančių klasių baigčių skaičius, o siūlomą formulę patikrinkite ties pradiniu indeksu ir kiekviename tolesniame žingsnyje. Šiomis dviem idėjomis galite naudotis dar prieš studijuodami bendruosius jų įrodymo metodus.

Skaitydami pirmą kartą, sekite pradinius atvejus laiptų uždavinio ir dvejetainių eilučių lentelėse. Prie uždarųjų formulių grįžkite pasipraktikavę įstatyti reikšmes ir taikyti skirstomumo dėsnį. Paskelbta pamoka „Laipsnių savybės ir laipsninės funkcijos“ parengia darbui su laipsniais geometrinių sekų formulėse; ji nepateikia skaičiavimui reikalingo suskaidymo.

03

Taisyklei reikia indeksų intervalo ir pradinių reikšmių

Seka yra sutvarkytas reikšmių sąrašas, kurio elementai pažymėti indeksais. Čia indeksai yra neneigiami sveikieji skaičiai: a₀,a₁,a₂,… . Apatinis indeksas nurodo vietą sekoje; jis nėra daugiklis. Nurodžius a₀, o ne a₁, pasikeičia vieta, nuo kurios pradedama.

Rekurentinis sąryšis susieja sekos narį su ankstesniais nariais. Pavyzdžiui, aₙ = aₙ₋₁+3, kai n ≥ 1, leidžia apskaičiuoti kiekvieną kitą narį, kai duota viena pradinė reikšmė a₀. Vien taisyklė sekos neapibrėžia: pradinės reikšmės 2 ir 5 pagal tą pačią taisyklę duoda skirtingas sekas.

Rekurentinio sąryšio eilė yra didžiausias jame naudojamas indekso poslinkis atgal. Taisyklė uₙ = uₙ₋₁+uₙ₋₂, kai n ≥ 2, yra antrosios eilės ir tokia forma reikalauja u₀ ir u₁. Turint šias pradines reikšmes, kiekvienas naujas narys vienareikšmiškai apskaičiuojamas iš jau nustatytų narių. Šis samprotavimas žengiant pirmyn pagrindžia ir egzistavimą, ir vienatinumą nurodytoje srityje.

Netaikykite taisyklės už jos indeksų intervalo ribų. Kai n = 1, antrosios eilės reiškiniui reikėtų u₋₁, kuris nėra apibrėžtas. Pradinės reikšmės nusako atvejus su mažais indeksais, kuriems bendrasis suskaidymas netaikomas.

04

Įrodykite laiptų uždavinio rekurentinį sąryšį dviem grįžtamais atvejais

Tegul uₙ žymi sutvarkytų sąrašų, sudarytų iš 1 ir 2, kurių suma lygi n, skaičių. Yra vienas tuščias sąrašas, kurio suma lygi nuliui, todėl u₀ = 1. Yra vienas sąrašas, kurio suma lygi vienetui, (1), todėl u₁ = 1.

Kai n ≥ 2, suskaidykite visus sąrašus pagal paskutinį žingsnį. Pašalinus paskutinį 1, jo klasė atvaizduojama į visus sąrašus, kurių suma lygi n−1; pridėjus 1 gale, atkuriamas pradinis sąrašas. Pašalinus paskutinį 2, analogiškai gaunami visi sąrašai, kurių suma lygi n−2, o atvirkštinis veiksmas yra 2 pridėjimas gale.

Pašalinkite paskutinį žingsnį ir gaukite trumpesnę sekąVisos penkios žingsnių sekos, kurių suma lygi keturiems, suskirstytos pagal paskutinį žingsnį. Trys baigiasi vienetu, o jį pašalinus lieka seka, kurios suma lygi trims; dvi baigiasi dvejetu, o jį pašalinus lieka seka, kurios suma lygi dviem. Plytelių pločiai atitinka vieną arba du vienetinius tarpus.Paskutinis žingsnis: 11111(1,1,1,1)121(1,2,1)211(2,1,1)Paskutinis žingsnis: 2112(1,1,2)22(2,2)u₄ = u₃ + u₂ = 3 + 2 = 5

Vienetu besibaigiančios sekos yra (1,1,1,1),(1,2,1),(2,1,1), gautos iš (1,1,1),(1,2),(2,1). Dvejetu besibaigiančios sekos yra (1,1,2),(2,2), gautos iš (1,1),(2). Taigi u₄ = u₃ + u₂ = 3 + 2 = 5.

Šios atitiktys yra abipusiškai vienareikšmės, klasės nesikerta ir apima visus sąrašus. Todėl uₙ = uₙ₋₁+uₙ₋₂, kai n ≥ 2. Nereikia nei dalybos, nei prielaidos, kad abiejose klasėse yra vienodas sąrašų skaičius.

Lentelė prasideda reikšmėmis 1,1,2,3,5,8,13, atitinkančiomis indeksus nuo 0 iki 6. Penki sąrašai, kurių elementų suma lygi keturiems, pasiskirsto taip: trys baigiasi 1, o du – 2. Baigtinė lentelė patikrina šį pavyzdį; argumentas, grindžiamas apgręžiamomis atvejų konstrukcijomis, įrodo taisyklę kiekvienam n iš nurodyto intervalo.

05

Ta pati taisyklė gali skaičiuoti skirtingus objektus arba naudoti skirtingus indeksus

Išklokite n vienetinių langelių juostą vieno ir dviejų vienetų ilgio plytelėmis, nepalikdami tarpų ir jų neperdengdami. Skaitydami plytelių ilgius iš kairės į dešinę, gauname būtent sąrašą iš 1 ir 2, kurio elementų suma lygi n. Sudėdami tokio ilgio plyteles, atliekame atvirkštinę konstrukciją. Taigi šių juostos išklojimų skaičius taip pat yra uₙ, įskaitant vieną nulinio ilgio juostos išklojimą.

Naudokime Fibonačio sekos susitarimą: F₀ = 0, F₁ = 1 ir Fₙ = Fₙ₋₁+Fₙ₋₂, kai n ≥ 2. Pagal jį gauname 0,1,1,2,3,5,8,… . O mūsų lipimo būdų skaičiai prasideda 1,1,2,3,5,8,… . Pagal šį susitarimą uₙ = Fₙ₊₁, o ne Fₙ.

Šis poslinkis galioja, kai n = 0 ir n = 1, o toliau abi pusės tenkina tą patį rekurentinį sąryšį. Žinomas sekos pavadinimas niekada nepakeičia nurodytų pradinių reikšmių ir pradinio indekso. Skirtingus objektus gali sieti tas pats rekurentinis sąryšis, nors jie nėra tapatūs rezultatai.

06

Paskutinis 1 reikalauja prieš jį esančio 0

Tegu bₙ žymi n ilgio dvejetainių eilučių, kuriose nėra gretimų 1, skaičių. Eilutę sudaro pažymėtos pozicijos, kuriose įrašyta 0 arba 1. Tuščioji eilutė, žymima ε, yra vienas rezultatas, todėl b₀ = 1. Abi vieno ilgio eilutės leidžiamos, todėl b₁ = 2.

Kai n ≥ 2, leistina eilutė baigiasi arba 0, arba 1. Pirmuoju atveju pašalinkite paskutinį 0; kiekvieną leistiną (n−1) ilgio eilutę galima pratęsti pridedant 0. Antruoju atveju prieš paskutinį skaitmenį turi būti 0, todėl pašalinkite galinį 01; kiekvieną leistiną (n−2) ilgio eilutę galima pratęsti pridedant 01.

Užbaikite nuliu arba pašalinkite galinę nulio ir vieneto porąPenkios leistinos trijų simbolių eilutės suskirstytos į tris, besibaigiančias nuliu, ir dvi, besibaigiančias nulio ir vieneto pora. Pašalinus galinį nulį, lieka leistina dviejų simbolių eilutė; pašalinus nulio ir vieneto porą, lieka leistina vieno simbolio eilutė.Baigiasi 0000000010010100100Baigiasi 01001001101101b₃ = b₂ + b₁ = 3 + 2 = 5

Pridėjus galūnę 0, gaunama 000,010,100 iš 00,01,10. Pridėjus galūnę 01, gaunama 001,101 iš 0,1. Šie du atvejai nesikerta ir apima visas penkias eilutes: b₃ = b₂ + b₁ = 3 + 2 = 5.

Abi konstrukcijos turi atvirkštinius pašalinimo atvaizdžius, išlaiko apribojimą ties naująja sandūra ir apibrėžia nesikertančius, visus galimus variantus apimančius atvejus. Todėl bₙ = bₙ₋₁+bₙ₋₂, kai n ≥ 2. Skaičiai prasideda 1,2,3,5,8,13,21, taigi pagal mūsų susitarimą bₙ = Fₙ₊₂.

Kai ilgis lygus trims, eilutės, kurios baigiasi 0, yra 000,010,100; eilutės, kurios baigiasi 01, yra 001,101. Vien pasakyti „pridėkite 1 prie bet kurios leistinos trumpesnės eilutės“ yra klaidinga: pridėjus 1 prie eilutės, kuri jau baigiasi 1, susidaro draudžiamas 11.

07

Tuščia konstrukcija yra vienas užbaigtas rezultatas

Tuščias lipimas ir tuščioji eilutė duoda po vieną pradinį rezultatą, nes nebelieka nieko pasirinkti. Jų elementų skaičius lygus nuliui, tačiau jų rezultatų aibėje yra vienas elementas. O kai reikalaujama teigiamo ilgio eilutės iš tuščios abėcėlės, nėra nė vieno rezultato.

Mūsų laiptų uždavinio būdų skaičius apibrėžtas tik tada, kai n ≥ 0. Kai kuriose išplėstinėse formulėse neigiamą dydį atitinkantis būdų skaičius laikomas lygiu nuliui, kad būtų paprasčiau užrašyti, tačiau tai yra papildomas susitarimas. Mes naudojame du tiesiogiai nustatomus pradinius atvejus ir laiptų uždavinio rekurentinę formulę taikome tik tada, kai n ≥ 2.

Visos baigtinio rekursinio skaičiavimo baigtysYra viena tuščia baigtis, vaizduojama vienu rėmeliu be plytelių ar skaitmenų langelių. Matomas tuščio žingsnių sąrašo arba tuščios eilutės simbolis.n = 0Pradinės baigtys suskaičiuojamos tiesiogiaiTuščioji baigtisε
Visos baigtys ir jų pabaigos atvejai
BaigtisAtvejis
εNulinio dydžio kraštinis atvejis

Uždavinyje su kitokiais apribojimais mažų reikšmių atvejai gali skirtis. Jei vieno vieneto dydžio žingsniai draudžiami, pasiekti bendrą dydį, lygų vienetui, neįmanoma. Pakeitus šią taisyklę ir palikus u₁ = 1, būtų įskaičiuotas rezultatas, kurio naujasis uždavinys neleidžia.

08

Pirmosios eilės aritmetinių ir geometrinių taisyklių išskleidimas

Tarkime, kad A ir d yra realiosios konstantos, a₀ = A, o aₙ = aₙ₋₁+d, kai sveikasis skaičius n ≥ 1. Kol pasiekiamas indeksas n, d pridedamas lygiai n kartų, todėl aₙ = A+nd. Ši aritmetinės progresijos formulė tinka ir tada, kai d yra neigiamas arba lygus nuliui.

Tarkime, kad A ir q yra realiosios konstantos, a₀ = A, o aₙ = q aₙ₋₁, kai n ≥ 1. Jei q ≠ 0, kartotinai daugindami gauname aₙ = A qⁿ, kai n ≥ 0. Kai q neigiamas, narių ženklai gali kaitaliotis; dėl to seka netampa neapibrėžta.

Kiekviename žingsnyje pridėkite −3

Sekos narių pozicijas žymi tik sveikieji indeksai: Kiekviename žingsnyje pridėkite −3Šiame skydelyje pavaizduotos šešių sekos, apibrėžtos nurodytu pirmosios eilės rekurentiniu sąryšiu, narių tikslios reikšmės. Užpildyti taškai rodo apskaičiuotas reikšmes, o tušti kvadratai – atitinkamas reikšmes, gautas pagal uždarąją formulę, esant tiems patiems sveikiesiems indeksams. Jos sutampa. Kiekviename skydelyje yra aiškiai sužymėtos tiesinės ašys su vienodais tarpais tarp padalų, prireikus apimančios ir neigiamas reikšmes; kiekvienas skydelis turi savo sužymėtą vertikaliąją skalę. Reikšmės tarp indeksų neapibrėžtos.a₀ = 2; q = 1; b = −3−15−10−50520−11−42−73−104−135Indeksas nNario reikšmėTaškas: rekurentinė; tuščias kvadratas: išreikštinė
Kiekviename žingsnyje pridėkite −3
Indeksas nRekurentinė formulėIšreikštinė formulė
022
1-1-1
2-4-4
3-7-7
4-10-10
5-13-13

Dauginkite iš −2

Sekos narių pozicijas žymi tik sveikieji indeksai: Dauginkite iš −2Šiame skydelyje pavaizduotos šešių sekos, apibrėžtos nurodytu pirmosios eilės rekurentiniu sąryšiu, narių tikslios reikšmės. Užpildyti taškai rodo apskaičiuotas reikšmes, o tušti kvadratai – atitinkamas reikšmes, gautas pagal uždarąją formulę, esant tiems patiems sveikiesiems indeksams. Jos sutampa. Kiekviename skydelyje yra aiškiai sužymėtos tiesinės ašys su vienodais tarpais tarp padalų, prireikus apimančios ir neigiamas reikšmes; kiekvienas skydelis turi savo sužymėtą vertikaliąją skalę. Reikšmės tarp indeksų neapibrėžtos.a₀ = 3; q = −2; b = 0−100−5005030−61122−243484−965Indeksas nNario reikšmėTaškas: rekurentinė; tuščias kvadratas: išreikštinė
Dauginkite iš −2
Indeksas nRekurentinė formulėIšreikštinė formulė
033
1-6-6
21212
3-24-24
44848
5-96-96

Padvigubinkite, tada pridėkite 1

Sekos narių pozicijas žymi tik sveikieji indeksai: Padvigubinkite, tada pridėkite 1Šiame skydelyje pavaizduotos šešių sekos, apibrėžtos nurodytu pirmosios eilės rekurentiniu sąryšiu, narių tikslios reikšmės. Užpildyti taškai rodo apskaičiuotas reikšmes, o tušti kvadratai – atitinkamas reikšmes, gautas pagal uždarąją formulę, esant tiems patiems sveikiesiems indeksams. Jos sutampa. Kiekviename skydelyje yra aiškiai sužymėtos tiesinės ašys su vienodais tarpais tarp padalų, prireikus apimančios ir neigiamas reikšmes; kiekvienas skydelis turi savo sužymėtą vertikaliąją skalę. Reikšmės tarp indeksų neapibrėžtos.a₀ = 1; q = 2; b = 1020406080103172153314635Indeksas nNario reikšmėTaškas: rekurentinė; tuščias kvadratas: išreikštinė
Padvigubinkite, tada pridėkite 1
Indeksas nRekurentinė formulėIšreikštinė formulė
011
133
277
31515
43131
56363

Dauginkite iš 0, tada pridėkite 2

Sekos narių pozicijas žymi tik sveikieji indeksai: Dauginkite iš 0, tada pridėkite 2Šiame skydelyje pavaizduotos šešių sekos, apibrėžtos nurodytu pirmosios eilės rekurentiniu sąryšiu, narių tikslios reikšmės. Užpildyti taškai rodo apskaičiuotas reikšmes, o tušti kvadratai – atitinkamas reikšmes, gautas pagal uždarąją formulę, esant tiems patiems sveikiesiems indeksams. Jos sutampa. Kiekviename skydelyje yra aiškiai sužymėtos tiesinės ašys su vienodais tarpais tarp padalų, prireikus apimančios ir neigiamas reikšmes; kiekvienas skydelis turi savo sužymėtą vertikaliąją skalę. Reikšmės tarp indeksų neapibrėžtos.a₀ = 5; q = 0; b = 2012345502122232425Indeksas nNario reikšmėTaškas: rekurentinė; tuščias kvadratas: išreikštinė
Dauginkite iš 0, tada pridėkite 2
Indeksas nRekurentinė formulėIšreikštinė formulė
055
122
222
322
422
522

Dauginkite iš 1, tada pridėkite 2

Sekos narių pozicijas žymi tik sveikieji indeksai: Dauginkite iš 1, tada pridėkite 2Šiame skydelyje pavaizduotos šešių sekos, apibrėžtos nurodytu pirmosios eilės rekurentiniu sąryšiu, narių tikslios reikšmės. Užpildyti taškai rodo apskaičiuotas reikšmes, o tušti kvadratai – atitinkamas reikšmes, gautas pagal uždarąją formulę, esant tiems patiems sveikiesiems indeksams. Jos sutampa. Kiekviename skydelyje yra aiškiai sužymėtos tiesinės ašys su vienodais tarpais tarp padalų, prireikus apimančios ir neigiamas reikšmes; kiekvienas skydelis turi savo sužymėtą vertikaliąją skalę. Reikšmės tarp indeksų neapibrėžtos.a₀ = 4; q = 1; b = 2051015406182103124145Indeksas nNario reikšmėTaškas: rekurentinė; tuščias kvadratas: išreikštinė
Dauginkite iš 1, tada pridėkite 2
Indeksas nRekurentinė formulėIšreikštinė formulė
044
166
288
31010
41212
51414

Šalia esančioje lentelėje pateikiami visi šeši nariai ir abu skaičiavimai. Neigiami nariai lieka žemiau nulio linijos. Skirtumai, santykiai ir reikšmės nustatymo iš naujo elgsena priklauso nuo kiekviename skydelyje nurodytos taisyklės, o ne vien nuo grafiko nuolydžio.

Jei q = 0, atskirai palikime a₀ = A ir naudokime aₙ = 0, kai n ≥ 1. Jokios 0⁰ reikšmės nereikia. Jei q = 1, seka yra pastovi ir lygi A. Nustatyti q iš santykio aₙ/aₙ₋₁ galima tik tada, kai šis vardiklis nelygus nuliui.

Sekos grafike pateikiamos reikšmės ties sveikaisiais indeksais. Taškų sujungimas gali palengvinti vaizdo suvokimą, tačiau neapibrėžia narių tarp šių indeksų. Todėl mūsų grafikuose žymimi tik sekos taškai, naudojamos sužymėtos tiesinės skalės, o kai nariai neigiami, matoma nulio lygio linija.

09

Pastovus papildomas narys sukuria baigtinę geometrinės progresijos sumą

Nagrinėkime a₀ = A ir aₙ = q aₙ₋₁+b, kai n ≥ 1, o A, q ir b yra realiosios konstantos. Dėl papildomo b ši rekurentinė formulė yra nehomogeninė, kai b ≠ 0: pagal taisyklę pridedamas dydis, kuris negaunamas dauginant ankstesnes sekos reikšmes.

Išskleidę gauname a₁ = qA+b, a₂ = q²A+qb+b ir a₃ = q³A+q²b+qb+b. Kai n ≥ 1, bendroji išraiška yra aₙ = qⁿA+b(1+q+…+qⁿ⁻¹). Kiekvienas pridėtas b dauginamas po vieną kartą kiekviename vėlesniame žingsnyje.

Jei q ≠ 1, padauginę baigtinę sumą S = 1+q+…+qⁿ⁻¹ iš q ir atėmę S, gauname (q−1)S = qⁿ−1. Taigi aₙ = qⁿA+b(qⁿ−1)/(q−1). Kai q = 0 ir n ≥ 1, ši išraiška tiesiogiai supaprastėja iki aₙ = b; a₀ = A palikime atskirai.

Jei q = 1, pateikto dalmens vardiklis lygus nuliui, todėl jo naudoti negalima. Pagal pradinę taisyklę kiekviename žingsnyje pridedamas b, todėl aₙ = A+nb. Kai n = 0, visais atvejais naudojama nurodyta pradinė reikšmė; išskleistoje sumoje nėra jokių dėmenų.

10

Pridėti n nėra tas pats, kas pridėti konstantą

Kai a₀ = A ir aₙ = aₙ₋₁+n, kai n ≥ 1, išskleidžiant rekurentinį sąryšį pridedama 1, tada 2, tada 3 ir taip toliau. Todėl aₙ = A+(1+2+…+n).

Tarkime, S = 1+2+…+n. Po šia suma užrašykite tą pačią sumą atvirkštine tvarka; kiekvienos iš n vienas po kitu užrašytų narių porų suma lygi n+1. Taigi 2S = n(n+1), todėl aₙ = A+n(n+1)/2. Kai n = 0, tuščioji suma lygi nuliui, o formulė duoda A.

Tai paprastas nehomogeninis rekurentinis sąryšis su nuo indekso priklausančiu papildomu dėmeniu. Jo kintantys prieaugiai nėra pastovus aritmetinės progresijos skirtumas. Prieš taikydami geometrinės ar aritmetinės progresijos formulę, patikrinkite, kas iš tikrųjų pridedama pagal rekurentinį sąryšį.

11

Spėta formulė įrodoma, kai tenkina abi sąlygas

Numanoma uždaro pavidalo formulė turi atitikti visas reikiamas pradines reikšmes ir tenkinti rekurentinį sąryšį kiekvienam jo taikymo srities indeksui. Patikrinti penkias pateiktas reikšmes naudinga ieškant klaidų, tačiau taip negalima įrodyti begalinės sekos formulės.

Kai a₀ = 2 ir aₙ = 2aₙ₋₁+1, numanoma formulė aₙ = 3·2ⁿ−1 duoda 2, kai n = 0. Jei jos reiškinys teisingas indeksui n−1, kita reikšmė yra 2(3·2ⁿ⁻¹−1)+1 = 3·2ⁿ−1. Taigi teisingumas perkeliamas į kitą indeksą.

Patikrinkite pradinę reikšmę, tada kitą žingsnįPenkių sekos narių langelių grandinėje rekurentinė taisyklė „kitas a lygus dvigubam dabartiniam a plius vienas“ lyginama su siūloma formule „tris padauginti iš dviejų, pakeltų n-tuoju laipsniu, ir atimti vienetą“. Pradinė reikšmė yra du; rodomi nariai yra du, penki, vienuolika, dvidešimt trys ir keturiasdešimt septyni. Kiekviena rodyklė nurodo vieną pateiktos rekurentinės taisyklės taikymą.a₀ = 2; aₙ = 2aₙ₋₁ + 1×2+12n=0×2+15n=1×2+111n=2×2+123n=347n=4aₙ = 3·2ⁿ − 1

Kai n = 0, 3·2⁰−1 = 2. Jei aₙ₋₁ = 3·2ⁿ⁻¹−1, tai 2aₙ₋₁+1 = 3·2ⁿ−1. Rodomi nariai 2,5,11,23,47 iliustruoja šią patikrintą taisyklę.

Pradėkite nuo patikrintos pradinės reikšmės ir kartokite šią implikaciją, kol pasieksite bet kurį baigtinį norimą indeksą. Tai vietinis indukcinis argumentas: nėra pirmojo vėlesnio indekso, kuriam formulė galėtų būti klaidinga. Jei taisyklė antrosios eilės, patikrinkite abi pradines reikšmes ir žengdami į priekį naudokite abu ankstesnių narių reiškinius.

Bet kuri pateikta baigtinė pradinių narių atkarpa gali būti ir kitos sekos pradžia. Pavyzdžiui, aₙ = n ir cₙ = n+n(n−1)(n−2)(n−3) sutampa, kai n = 0,1,2,3, o kai n = 4, skiriasi. Vien spėtas dėsningumas neužtikrina, kad rekurentinis sąryšis galios netikrintiems indeksams.

12

Ne kiekvienas sąryšis nustato kitą reikšmę

Kai aₙ = q aₙ₋₁+b, norint atkurti ankstesnę reikšmę pagal aₙ₋₁ = (aₙ−b)/q, būtina, kad q ≠ 0. Kai q = 0, kiekviena pradinė reikšmė duoda tą pačią kitą reikšmę b, todėl žinant, kad a₁ = b, neįmanoma atkurti a₀.

Toks sąryšis kaip aₙ² = aₙ₋₁ nebūtinai vienareikšmiškai nustato kitą reikšmę realiųjų skaičių aibėje. Pradėjus nuo a₀ = 4, pirmasis sąryšis leidžia a₁ = 2 arba −2; ženklą parenkanti taisyklė būtų papildoma informacija.

Sąryšis aₙ = aₙ+1 yra prieštaringas. Sąryšis aₙ = aₙ nenustato jokio apribojimo. Tai nėra naudingi rekursiniai apibrėžimai, leidžiantys skaičiuoti tolesnes reikšmes. Patikrinkite, ar kiekviena reikalinga tolesnė reikšmė egzistuoja ir yra vienintelė, ir ar rekursinės priklausomybės iš tiesų veda prie žinomų pradinių duomenų.

Suskaičiuokite mažesnio dydžio baigtis prieš pridėdami paskutinę dalį

Pasirinkite bendrą dydį ir baigčių tipą. Remdamiesi pradiniais atvejais ir mažesniais dydžiais, numatykite baigčių skaičių; palyginkite jį su visų mažo dydžio baigčių vaizdu, tada atverkite lentelę.

Kiekviena baigtis yra sutvarkytas 1 ir 2 ėjimų sąrašas, kurio bendra suma lygi n. Ilgesnė kontūru pažymėta plytelė užima dvi vienetines vietas, o trumpesnė – vieną. Brėžinys taip pat vaizduoja juostos išklojimą plytelėmis.

Kai n yra ne mažesnis už du, kurią mažesnio dydžio baigtį galima pratęsti iki kiekvieno galutinio atvejo? Paaiškinkite, kodėl atvejai nesikerta ir apima visas galimybes.

Visos baigtinio rekursinio skaičiavimo baigtysKiekviena įrėminta eilutė yra viena žingsnių seka arba lygiavertis juostos išklojimas plytelėmis. Plytelių plotis tiksliai atitinka vieną arba du vienodus vienetinius langelius. Kai n yra ne mažesnis už du, brūkšninis oranžinis rėmelis žymi paskutinį dviejų pakopų ėjimą, o ištisinis mėlynas rėmelis – paskutinį vienos pakopos ėjimą.n = 3Mėlynas ištisinis / oranžinis brūkšninis: pabaigos atvejai111(1,1,1)12(1,2)21(2,1)
Visos baigtys ir jų pabaigos atvejai
BaigtisAtvejis
(1,1,1)Paskutinis žingsnis: 1
(1,2)Paskutinis žingsnis: 2
(2,1)Paskutinis žingsnis: 1

Visos mažo dydžio baigtys lieka matomos. Pagal rekurentinį sąryšį apskaičiuoti bendrieji skaičiai paslėpti, kad galėtumėte juos numatyti.

Kai n ≥ 2, pirmojo pabaigos atvejo baigčių skaičius lygus vienetu mažesnio dydžio baigčių skaičiui, o antrojo – dviem vienetais mažesnio dydžio baigčių skaičiui. Nė viena baigtis neskaičiuojama abiem atvejais.

Išvardytos visos rodomos mažo dydžio baigtys. Šios baigtinės patikros padeda pagrįsti prognozę; bendrasis skaidymo argumentas įrodo rekurentinį sąryšį.

13

Pakartotinai naudokite apskaičiuotą dalinį uždavinį, nesujungdami jo variantų

Tiesiogiai rekursiškai skaičiuojant u₄, reikia u₃ ir u₂. Skaičiuojant u₃, vėl reikia u₂. Abu iškvietimai prašo tos pačios skaitinės reikšmės, todėl u₂ galima išsaugoti vieną kartą ir naudoti pakartotinai. Toks rezultatų saugojimas vadinamas memoizacija.

Tikslų u₄ iškvietimų medį sudaro devyni iškvietimų mazgai, bet tik penki skirtingi indeksai – nuo 0 iki 4. Juo suskaičiuojamos penkios lipimo sekos. Šie trys dydžiai turi skirtingas prasmes; u₅ atveju tai yra 15 iškvietimų, šeši skirtingi indeksai ir aštuonios lipimo sekos.

Pakartotiniai iškvietimai nesukuria naujų rezultatųSekos nario u, kurio indeksas yra keturi, tikslų iškvietimų medį sudaro devyni iškvietimai, įskaitant du atskirus nario u, kurio indeksas yra du, iškvietimus. Brūkšniniai oranžiniai rėmeliai žymi šiuos pasikartojančius dalinius uždavinius. Kiekviena briauna veda nuo iškvietimo prie jo prašomo mažesnio skaičiaus. Atstumai tarp viršūnių yra scheminiai; tai nėra rezultatų skaičiaus skalė.u(4)=5u(3)=3u(2)=2u(1)=1u(0)=1u(1)=1u(2)=2u(1)=1u(0)=19 iškvietimų; 5 skirtingų indeksų; u₄ = 5

Norint apskaičiuoti u₄, iškviečiami u₃ ir u₂; u₃ iškviečia u₂ ir u₁; kiekvienas u₂ iškviečia u₁ ir u₀. Yra devyni iškvietimų mazgai, bet tik penki skirtingi indeksai – nuo nulio iki keturių. Abu u₂ iškvietimai grąžina du; penki suskaičiuoti žingsnių sąrašai lieka skirtingais rezultatais.

Kiekvieną žingsnių sąrašų skaičių išsaugokite vieną kartą indeksų didėjimo tvarka
Indeksas nNaudotos ankstesnės reikšmėsIšsaugotas skaičius
0Pradinė reikšmė1
1Pradinė reikšmė1
21 + 12
32 + 13
43 + 25
55 + 38
68 + 513

Pakartotinės u₂ užklausos nereiškia dvigubo skaičiavimo variantų skaičiaus įrodyme. Jį atitinkantys trumpesni sąrašai pratęsiami skirtinguose galutiniuose atvejuose arba su ilgesniais prefiksais, todėl gaunami skirtingi pilni sąrašai. Skaidinys apibrėžia skirtingus skaičiuojamus objektus; iškvietimų medis aprašo, kaip apskaičiuojamas skaičius.

Nuo pradinių reikšmių pildoma lentelė pradedama u₀,u₁, tada joje po vieną kartą išsaugomos u₂,u₃,… reikšmės. Jos reikšmės sutampa su teisingos rekursijos reikšmėmis, nes kiekvienam įrašui taikoma ta pati taisyklė ir naudojamos tos pačios pradinės reikšmės. Įrodžius uždarąją formulę, ji yra dar vienas būdas gauti tas reikšmes; spartesnis skaičiavimas negali ištaisyti neteisingo skaičiavimo modelio.

Išnagrinėti pavyzdžiai

Penki aukščio vienetai, aštuonios lipimo sekos

Kiek yra lipimo sekų iš vieno arba dviejų vienetų žingsnių, kurių bendras aukštis yra penki? Pateikite pradinius skaičius ir paaiškinkite skaidymą pagal paskutinį žingsnį.

  1. Tuščioji lipimo seka duoda u₀ = 1, o (1) duoda u₁ = 1.
  2. Pašalinus paskutinį 1 arba 2, gaunamos nesikertančios klasės, apimančios visus atvejus; kai n ≥ 2, jų dydžiai yra uₙ₋₁ ir uₙ₋₂.
  3. Remdamiesi šiomis pradinėmis reikšmėmis, paeiliui apskaičiuokite u₂ = 2, u₃ = 3 ir u₄ = 5.
  4. Kai aukštis yra penki, penkios lipimo sekos baigiasi 1, o trys – 2, todėl u₅ = 5+3 = 8.

8 užlipimo būdų. Galutinių klasių dydžiai nebūtinai turi būti vienodi; grįžtamasis jų sudarymas pagrindžia dydžių sudėjimą.

Eilutės su apribojimais turi savas pradines reikšmes

Suskaičiuokite keturių simbolių dvejetaines eilutes, kuriose nėra gretimų 1.

  1. Yra viena tuščia eilutė ir dvi vieno simbolio eilutės, todėl b₀ = 1 ir b₁ = 2.
  2. Kai n ≥ 2, pašalinkite arba gale esantį 0, arba gale esantį 01. Iš šių atvejų gauname bₙ = bₙ₋₁+bₙ₋₂.
  3. Tuomet b₂ = 3 ir b₃ = 5. Keturių simbolių eilučių skaičius yra b₄ = b₃+b₂ = 5+3.
  4. Aštuonios eilutės yra 0000,0001,0010,0100,0101,1000,1001,1010. Penkios baigiasi 0, o trys – 01.

8 eilučių. Kai F₀ = 0,F₁ = 1, šis skaičius lygus F₆, o ne F₄.

Išskleiskite afininę rekurentinę lygtį, tada ją patikrinkite

Išspręskite a₀ = 2 ir aₙ = 2aₙ₋₁+1, kai n ≥ 1, ir raskite a₄.

  1. Išskleidę gauname aₙ = 2ⁿ·2+(1+2+…+2ⁿ⁻¹), kai n ≥ 1.
  2. Geometrinės progresijos narių suma yra 2ⁿ−1, todėl aₙ = 3·2ⁿ−1. Kai n = 0, pagal formulę gauname 2.
  3. Įstatę ankstesnę formulę, gauname 2(3·2ⁿ⁻¹−1)+1 = 3·2ⁿ−1; taip patikrinamas kiekvienas rekursijos žingsnis.
  4. Taigi a₄ = 3·16−1 = 47; tiesiogiai kartodami rekursijos žingsnius, gauname 2,5,11,23,47.

aₙ = 3·2ⁿ−1, kai n ≥ 0; a₄ = 47. Patikrinta ir pradinė reikšmė, ir rekursinė taisyklė.

Prieaugiai gali kisti priklausomai nuo n

Kai a₀ = −2 ir aₙ = aₙ₋₁+n, kai n ≥ 1, raskite išreikštinę formulę ir a₅.

  1. Išskleidžiant rekursiją, kiekvienas sveikasis skaičius nuo 1 iki n pridedamas po vieną kartą: aₙ = −2+(1+…+n).
  2. Sudedant sumą su ta pačia suma, užrašyta atvirkštine tvarka, gaunama suma n(n+1)/2; kai n = 0, tuščioji suma lygi nuliui.
  3. Siūlomos formulės −2+n(n+1)/2 pradinė reikšmė yra −2. Jos reikšmės pokytis nuo n−1 iki n yra [n(n+1)−(n−1)n]/2 = n.
  4. Todėl a₅ = −2+5·6/2 = 13. Kartodami rekursijos žingsnius, gauname −2,−1,1,4,8,13.

aₙ = −2+n(n+1)/2, kai n ≥ 0; a₅ = 13. Pastovaus skirtumo formulė netiktų šiems didėjantiems prieaugiams.

Pabandykite patys

  1. Palyginkite seką, kurios u₀ = 1,u₁ = 1, su seka, kurios v₀ = 0,v₁ = 1, kai abiejų sekų kiekvienas narys lygus dviejų ankstesnių narių sumai, kai n ≥ 2. Kokios yra jų narių su indeksu trys reikšmės?

    Rodyti atsakymą ir paaiškinimą

    u₃ = 3, o v₃ = 2.

    Jų narių, kurių indeksas yra du, reikšmės yra 2 ir 1. Sudėję atitinkamus du ankstesnius narius, gauname 3 ir 2. Vien rekurentinis sąryšis sekos vienareikšmiškai nenustato.

  2. Kodėl eilutėms be gretimų 1 simbolių galioja b₀ = 1 ir kodėl atvejis, kai eilutė baigiasi 01, nenaudojamas vieno simbolio ilgio eilučių skaičiui apibrėžti?

    Rodyti atsakymą ir paaiškinimą

    Yra viena tuščia eilutė. Vieno simbolio ilgio eilutės turi du tiesioginius variantus: 0 ir 1; pabaigai 01 reikia bent dviejų pozicijų.

    Tuščia eilutė tenkina apribojimą. Rekurentinis sąryšis taikomas nuo n = 2, todėl jam nereikia b₋₁ ir jis nepraleidžia leistinos vieno simbolio eilutės 1.

  3. Kai a₀ = 2 ir aₙ = q aₙ₋₁, išvardykite narius, kurių indeksai yra 0,1,2,3, kai q = −1 ir kai q = 0.

    Rodyti atsakymą ir paaiškinimą

    Kai q = −1: 2,−2,2,−2. Kai q = 0: 2,0,0,0.

    Neigiamas daugiklis čia lemia ženklų kaitą. Nulinis daugiklis kiekvieną narį su teigiamu indeksu paverčia nuliu, bet išsaugo nurodytą pradinę reikšmę 2; 0⁰ reikšmės nereikia.

  4. Kai a₀ = 7 ir aₙ = q aₙ₋₁−2, raskite a₄, kai q = 1, ir apibūdinkite visus narius su teigiamais indeksais, kai q = 0.

    Rodyti atsakymą ir paaiškinimą

    Jei q = 1, tai a₄ = 7−4·2 = −1. Jei q = 0, tai aₙ = −2 visiems n ≥ 1; a₀ lieka 7.

    Kai q = 1, pagal taisyklę kiekviename žingsnyje pridedama −2 ir išvengiama dalybos iš q−1. Kai q = 0, pagal taisyklę ankstesnis narys panaikinamas; pradinį narį su nuliniu indeksu nagrinėkite atskirai.

  5. Ar lipimų, kuriais iš viso įveikiamos trys pakopos, skaičių galima rasti sudėjus lipimų, kurie „baigiasi 1“, ir lipimų, kuriuose „yra 1“, skaičius? Paaiškinkite pateikdami vieną sąrašą.

    Rodyti atsakymą ir paaiškinimą

    Ne. Šios grupės persidengia: (1,1,1) priklauso abiem.

    Visuose trijuose būduose užlipti tris pakopas yra 1, o du iš jų baigiasi 1. Sudėjus 3+2, persidengiantys variantai būtų suskaičiuoti du kartus. Suskirstymas į variantus, kurie baigiasi 1, ir variantus, kurie baigiasi 2, yra tinkamas skaidymas į nesikertančias aibes.

  6. Ar cₙ = 2ⁿ−1 tenkina a₀ = 2, aₙ = 2aₙ₋₁+1, kai n ≥ 1?

    Rodyti atsakymą ir paaiškinimą

    Ne. Ši formulė tenkina rekurentinį sąryšį, bet pagal ją c₀ = 0, o ne reikalaujama reikšmė 2.

    Teisinga formulė yra 3·2ⁿ−1. Formulė, kuri tenkina skaičiavimo pirmyn lygtį, bet netenkina pradinės reikšmės sąlygos, aprašo kitą seką.

  7. Jei aₙ = 0·aₙ₋₁+3, kai n ≥ 1, ir a₁ = 3, ar galima atkurti a₀?

    Rodyti atsakymą ir paaiškinimą

    Ne. Bet kuri realioji pradinė reikšmė a₀ duoda a₁ = 3.

    Pateikus pradinę reikšmę, skaičiavimo pirmyn taisyklė vienareikšmiškai nustato tolesnes reikšmes, tačiau dauginant iš nulio prarandama informacija. Dalyba iš q = 0 nėra leistinas skaičiavimo atgal žingsnis.

  8. Paprastai rekursiškai skaičiuojant u₅ pagal du ankstesnius narius, atliekama 15 iškvietimų ir naudojami šeši skirtingi indeksai. Kiek lipimo variantų taip suskaičiuojama ir kas pasikeičia, jei kiekvieno dalinio uždavinio rezultatas išsaugomas vieną kartą?

    Rodyti atsakymą ir paaiškinimą

    Suskaičiuojama 8 lipimo variantų. Išsaugant reikšmes išvengiama pakartotinių skaičiavimų, tačiau 8 variantų skaičius nesumažėja.

    Variantų skaičius yra u₅ = u₄+u₃ = 5+3. Iškvietimai yra užklausos atlikti skaičiavimus, o variantai – žingsnių sekos. Pakartotinai naudojant skaičių, skaičiavimui naudojamas suskaidymas išlieka nepakitęs.

Ką verta įsidėmėti

  • Nurodykite indekso reikšmių sritį, rekurentinio sąryšio galiojimo ribas ir būtinas pradines reikšmes; pavyzdžių sąrašas nepateikia bendrosios taisyklės.
  • Rekursinį variantų skaičiavimą pagrįskite nesikertančiais, visus variantus apimančiais atvejais ir atvirkštinėmis mažesnių variantų konstravimo procedūromis.
  • Viena tuščia baigtis ir nė vienos baigties nėra tas pats; Fibonačio sekos indeksų poslinkiai priklauso nuo nurodytų pradinių reikšmių.
  • Išskleidžiant gaunamos paprastos formulės, prireikus atskirai nagrinėjant atvejus q = 0 ir q = 1.
  • Patikrinkite kiekvieną pradinę reikšmę ir tolesnių narių apskaičiavimo taisyklę, kad įrodytumėte siūlomą sekos formulę.
  • Pakartotiniai iškvietimai, skirtingi atmintyje saugomi daliniai uždaviniai ir skaičiuojamos baigtys yra skirtingi dydžiai.

Šaltiniai

Šio straipsnio sąvokų ir mokymo būdų šaltiniai.

  1. Applied Combinatorics · HTML Edition 2017.3; corrections through 30 June 2025Mitchel T. Keller, William T. TrotterVadovėlio skyriusApplied CombinatoricsFibonacci counting, tiling cases and restricted strings — §9.1, Examples 9.2–9.3appliedcombinatorics.org
  2. Introduction to Algorithms, Lecture 19: Dynamic Programming I · Fall 2011MIT 6.006 course materialsPaskaitų medžiaga · PDFIntroduction to Algorithms, Lecture 19: Dynamic Programming IRepeated Fibonacci calls and memoization — p.2Storing subproblems and a bottom-up table — p.3ocw.mit.edu