Rekursion och induktion

Relevanta dokument
Rekursion och induktion

Övningshäfte 2: Induktion och rekursion

inte följa någon enkel eller fiffig princip, vad man nu skulle mena med det. All right, men

Explorativ övning 5 MATEMATISK INDUKTION

Explorativ övning 5 MATEMATISK INDUKTION

Föreläsning 5: Summor (forts) och induktionsbevis

Övningshäfte 1: Induktion, rekursion och summor

MATEMATISK INDUKTION. Syftet med denna övning är att introducera en av de viktigaste bevismetoderna i matematiken

Matematik 5 Kap 2 Diskret matematik II

1. Inledning, som visar att man inte skall tro på allt man ser. Betrakta denna följd av tal, där varje tal är dubbelt så stort som närmast föregående

Lösningar till utvalda uppgifter i kapitel 4

PROV I MATEMATIK Algoritmik 26 mars 2008

Föreläsning 6: Induktion

MATEMATISK INDUKTION. Syftet med denna övning är att introducera en av de viktigaste bevismetoderna i matematiken

Problemdemonstration 1

SCB :-0. Uno Holmer, Chalmers, höger 2 Ex. Induktiv definition av lista. // Basfall

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret Lektion 4

1, 2, 3, 4, 5, 6,...

Lösningar för tenta i TMV200 Diskret matematik kl. 14:00 18:00

Induktion, mängder och bevis för Introduktionskursen på I

PROV I MATEMATIK Algoritmik 14 april 2012

Lösningar till utvalda uppgifter i kapitel 5

Lösningsförslag till övningsuppgifter, del II

Kappa 2014, lösningsförslag på problem 5

Hela tal LCB 1999/2000

ARITMETIK 3. Stockholms universitet Matematiska institutionen Avd matematik Torbjörn Tambour

Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande:

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

2 (6) k 0 2 (7) n 1 F k F n. k F k F n F k F n F n 1 2 (8)

Träd och koder. Anders Björner KTH

1 Talteori. Det här kapitlet inleder vi med att ta

Algebra och talteori MMGL31. Repetition. Idag. Föreläsning 9 VT FLS och primtalstestning. Carmichaeltal. Rabin-Miller test.

Läsanvisning till Discrete matematics av Norman Biggs - 5B1118 Diskret matematik

Övning 2. (Länkade) Listor, noder

Lösning till tentamensskrivning på kursen Diskret Matematik, moment A, för D2 och F, SF1631 och SF1630, den 10 januari 2011 kl

När du läser en definition bör du kontrollera att den är vettig, och försöka få en idé om vad den egentligen betyder. Betrakta följande exempel.

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl

Lösning av tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, tisdagen den 27 maj 2014, kl

Programkonstruktion och Datastrukturer, lektion 7

Programkonstruktion och Datastrukturer

Polynom över! Till varje polynom hör en funktion DEFINITION. Grafen till en polynomfunktion

Algebra I, 1MA004. Lektionsplanering

Lösningar för tenta i TMV200 Diskret matematik kl. 14:00 18: Svar: Ja, det gäller, vilket kan visas på flera sätt (se nedan).

4x 1 = 2(x 1). i ( ) får vi 5 3 = 5 1, vilket inte stämmer alls, så x = 1 2 är en falsk rot. Svar. x = = x x + y2 1 4 y

INDUKTION OCH DEDUKTION

2 Matematisk grammatik

SF2715 Applied Combinatorics// Extra exercises and solutions, Part 2

Lutande torn och kluriga konster!

Tentamen TMV210 Inledande Diskret Matematik, D1/DI2

Rekursion och induktion för algoritmkonstruktion

LMA033/LMA515. Fredrik Lindgren. 4 september 2013

Lösningar till övningstentan. Del A. UPPSALA UNIVERSITET Matematiska institutionen Styf. Övningstenta BASKURS DISTANS

Föreläsning 13. Rekursion

29 Det enda heltalet n som satisfierar båda dessa villkor är n = 55. För detta värde på n får vi x = 5, y = 5.

TDP015: Lektion 5 - Svar

Lösningsförslag till tentamensskrivning i SF1610 Diskret Matematik för CINTE 30 maj 2018, kl

Föreläsning 4 Datastrukturer (DAT037)

Material till kursen SF1679, Diskret matematik: Lite om kedjebråk. 0. Inledning

b) S Ø aa, A Ø aa» bb, B Ø aa» bc, C Ø ac» bc» 2. Låt L vara språket över 8a< som nedanstående NFA accepterar.

Rekursiva algoritmer sortering sökning mönstermatchning

Lars-Daniel Öhman Lördag 2 maj 2015 Skrivtid: 9:00 15:00 Hjälpmedel: Miniräknare, lock till miniräknare

Matematisk kommunikation för Π Problemsamling

Algoritmanalys. Inledning. Informationsteknologi Malin Källén, Tom Smedsaas 1 september 2016

Diskret matematik: Övningstentamen 4

A-del. (Endast svar krävs)

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder

Resträkning och ekvationer

(A B) C = A C B C och (A B) C = A C B C. Bevis: (A B) C = A C B C : (A B) C = A C B C : B C (A B) C A C B C

IX Diskret matematik

Tentamen i TDDC75 Diskreta strukturer , lösningsförslag

Delbarhet och primtal

Några satser ur talteorin

Rekursion och induktion för algoritmkonstruktion

Kimmo Eriksson 12 december Att losa uppgifter av karaktaren \Bevisa att..." uppfattas av manga studenter

Matematisk kommunikation för Π Problemsamling

Föreläsning 5: Grafer Del 1

INDUKTION OCH DEDUKTION

1. (a) Formulera vad som skall bevisas i basfallet och i induktionssteget i ett induktionsbevis av påståendet att. 4 5 n för alla n = 0, 1, 2, 3,...

EXAMENSARBETEN I MATEMATIK

Rekursion. 1. Inledning. vara en fot bred.

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 14 augusti, 2002

För att få första och sista elementet i en lista kan man använda First och Last

Kompletteringsmaterial. K2 Något om modeller, kompakthetssatsen

Kontinuitet och gränsvärden

Diskret matematik: Övningstentamen 1

Grundläggande logik och modellteori

Diverse beteckningar och formler som dyker upp i induktionsavsnittet, men även litet överallt annars:

Ett förspel till Z -transformen Fibonaccitalen

MATEMATIKENS SPRÅK. Avsnitt 1

Diskret matematik. Gunnar Bergström

TAMS79: Föreläsning 10 Markovkedjor

Resurscentrums matematikleksaker

18 juni 2007, 240 minuter Inga hjälpmedel, förutom skrivmateriel. Betygsgränser: 15p. för Godkänd, 24p. för Väl Godkänd (av maximalt 36p.

(N) och mängden av heltal (Z); objekten i en mängd behöver dock inte vara tal. De objekt som ingår i en mängd kallas för mängdens element.

Tentamen, Algoritmer och datastrukturer

Talteori. 1 Grundbegrepp och kongruenser Talföljder och rekursion 6 3 Induktionsbevis Fraktaler.16 Facit.. 18

Om konvergens av serier

Om plana och planära grafer

PROV I MATEMATIK Automatateori och formella språk DV1 4p

Transkript:

Rekursion och induktion Vi börjar med ett exempel. EXEMPEL 1 I slutet av 1800-talet presenterade den franske matematikern Edouard Lucas ett slags matematiskt pussel ( recréation mathématiques ) vars mål var att flytta olika stora skivor från en pinne till en annan pinne (målpinnen). A B C Enligt pusslets regler skulle skivorna flyttas en i taget utan att någon skiva hamnar ovanpå en mindre skiva. En tredje pinne fick användas som hjälppinne på vilken en skiva kunde vila medan andra skivor flyttades. För de fall att antalet skivor är 1, eller 3, kan pusslet lösas med 1, 3 respektive 7 stycken skivflyttningar. Försök visa det! En lyckosam strategi för att flytta ett torn bestående av n skivor från en pinne A till en målpinne B med hjälp av en hjälppinne C är att dela upp arbetet i följande tre delar: (1) Flytta de n - 1 översta skivorna (vilka bildar ett mindre torn än det egentliga tornet) från A till C med B som hjälppinne. () Flytta en skiva från A till B. (3) Flytta åter de n - 1 minsta skivorna, nu från C till B med A som hjälppinne. A B C A B C A B (1), (), (3) bildar en algoritm för tornförflyttningen, en rekursiv sådan. Nu övergår vi till att göra en analys av densamma. Närmare bestämt en analys av hur många beräkningssteg som algoritmen ger upphov till vid körning på ett torn med n skivor. C När man gör en sådan undersökning av en algoritm brukar man säga att man undersöker algoritmens komplexitet. Resultatet av en komplexitetsundersökning beror givetvis på vad som uppfattas som ett beräkningssteg. Låt oss välja en enstaka skivförflyttning som ett sådant steg. Följande tvåradersformel beskriver då antalet beräkningssteg för den markerade algoritmen ovanför. : AntalStegH0L 0 AntalStegHnL 1 + AntalStegHn - 1L Att det blev en rekursiv formel var högst naturligt. Så blir det gärna när man undersöker en algoritm som är rekursiv. Det s.k. basfallet AntalH0L 0 uttrycker av att ingen enstaka skiva förflyttas, då man har ett torn med noll skivor. Och rekursionsformelns högerled lägger samman antalet skivförflyttningar i (1), (), (3). Ibland kan man genom att driva en rekursionsformel bakåt erhålla en s.k. sluten formel. Så är det i just detta fall. AntalStegIn 0 M 1 + AntalStegIn 0-1M 1 + I1 + AntalStegIn 0 - MM 1 + I1 + I1 + AntalStegIn 0-3MMM 1 + I1 + I1 + I1 + AntalStegIn 0-4MMMM 1 + + + 3 + 4 AntalStegIn 0-4M Rekursion och induktion 1 + + + + n 0-1 + n 0 AntalStegIn 0 - n 0 M 1 + + + + n 0-1 + n 0 AntalStegH0L 1 + + + + n 0-1 + 0 1 + + + + n 0-1 n 0-1 I den avslutande likheten utnyttjas att varje summa av inledande tvåpotenser är lika med nästa tvåpotens minskad en enhet. (Följer t.ex. av summaformeln för geometriska summor.) Anmärkning 1. I härledningen av den slutna formeln ovanför möter läsaren först en följd av fyra rekursiva anrop, sedan en rad med tre punkter vars avsikt är att få läsaren att samla sig till en generalisering att gå från 1,, 3, 4 direkt till n Noga räknat har vi inget annat stöd för generaliseringen som kommer efter raden med de tre punkterna, än att det ser ut att stämma.

3 Rekursion och induktion Inom de flesta vetenskaper spelar generalisering en stor roll. Från en följd av (väl valda) specialfall försöker man ge en generell beskrivning av det som undersöks. Inte sällan finns det därvid en större eller mindre osäkerhet i en generalisering. Inom den matematiska vetenskapen, som har att leva upp till ryktet om en säker vetenskap, finns det dess bättre en metod med vars hjälp vissa generaliseringar kan bevisas vara korrekta. Bevismetoden kallas (matematisk) induktion. Enkel induktion i ett steg Föreställ dig en oändlig följd av påståenden, P H0L, PH1L, PHL, För att bevisa att de är sanna allesamman, räcker det att bevisa två saker. Basfallet: PH0L sann Induktionssteget: För varje n 0 gäller att om PIn 0 M är sann, så är också PIn 0 + 1M sann. Lägg märke till att man i induktionssteget inte för något enda påstående ska bevisa att det är sant. Däremot ska man för varje påstående bevisa, att under antagandet att det är sant (kallas induktionsantagandet), så följer att det efterföljande påståendet också är sant. Och det är inte illa. Om basfallet och induktionssteget är bevisade, så kan inget av påståendena i (1) vara falskt. Varför då? Varför fungerar ett induktionsbevis? Antag att vi har bevisat basfallet och induktionssteget som ovan. Om trots det, inte alla påståenden i (1) vore sanna, så skulle det finnas något n så att PHnL är falsk. Låt n 1 vara det minsta n:et av detta slag. Det följer att n 1 inte kan vara lika med 0 (enligt basfallet). Inte heller kan n 1 vara större än 0. Ty i så fall skulle PHn 1-1L vara sann, men PHn 1 L vara falsk, något som motsägs av induktionssteget. Således finns det inget sådant n 1. Ñ Att det verkligen går att hitta ett minsta n av nämnt slag är avgörande för hållbarheten i resonemanget. Man brukar säga att man använder Minsta-Element- Principen (MEP) när man plockar ett minsta element ur en icketom mängd. Notera att det inte är självklart att en icketom mängd har ett minsta element. T.ex. finns det inget minsta element i mängden : 1 n+1 À n œ!>. (1) Betrakta åter de med n œ! indexerade påståendena från EXEMPEL 1. AntalStegHnL n - 1 I anmärkning 1 påpekades att härledningen av () hade vissa formella ihåligheter, och därför inte hade status av ett formellt bevis. Med hjälp av induktionsmetoden och rekursionsformeln : AntalStegH0L 0 AntalStegIn 0 M 1 + AntalStegIn 0-1M är det lätt att erhålla ett strikt bevis för att likheten i () stämmer för alla n œ!. Se här: Basfallet: Då n 0 stämmer likheten i (), ty i detta fall säger ju () helt enkelt att AntalStegH0L 0-1, dvs att AntalStegH0L 0. Och det stämmer ju med rekursionsformelns basfall. Induktionssteget: Betrakta nu ett godtyckligt n 0 œ!. Givet det s.k. induktionsantagandet att () stämmer för n n 0, så ska vi visa att () stämmer även för det efterföljande n-värdet, dvs. att AntalStegIn 0 + 1M n 0 +1-1. Let's go AntalStegIn 0 + 1M HiL 1 + AntalStegIn 0 M HiiL 1 + I n 0-1M Rekursion och induktion 4 HiiiL 1 + n 0 +1 HiiiL - n 0 +1-1 Motivering: (i) Rekursionsformeln, (ii) Induktionsantagandet, (iii) Förenklingar Anmärkning Varje induktionsbevis med induktion i ett steg fordrar att man har tillgång till en korrekt rekursionsformel, som hoppar (rekurserar) ett steg, i vilken man kan plugga in induktionsantagandet. Glöm inte bort det. Ofta har man emellertid rekursionsformler som hoppar flera steg. Då hoppar induktionssteget lika många steg, och basfallet innehåller lika många verifikationer som antalet steg. Ett känt exempel behandlas nedanför. ()

Rekursion och induktion EXEMPEL Leonardo Pisano vanligen kallad Leonardo Fibonacci, den kanske störste matematikern som Europa framburit före renässansen skrev år 10 en bok (Liber abaci) i räknelära. Ja, faktiskt. I sin bok presenterade Fibonacci följande räkneproblem: Hur många kaninpar har man efter 1 månader, om man startar med ett nyfött kaninpar? Utgångspunkten är att ett nyfött kaninpar blir fertilt efter en månad, och att paret en månad senare och fortlöpande varje månad därefter producerar ett nytt kaninpar, som i sin tur blir fertilt efter en månad osv. Se vänstra bilden nedanför!!"!"!"!"!"!"!"!"!"!"!"!" Talen 1, 1,, 3,,... beskriver hur många kaninpar det finns efter månad 1,, 3, 4,,..., och kallas efter Lucas (samma snubbe som i EXEMPEL 1) för Fibonaccitalen. Dessa tal har visat sig dyka upp i allehanda förklädnader. T.ex. förekommer det n:te Fibonaccitalet även som antalet förfäder i n:te generationen till en (manligt bi). Något som beror på att en produceras utan sex av en bi (kvinnligt bi), medan en produceras av en och en tillsammans. Se högra bilden ovanför! Det vanligaste sättet att generera Fibonaccital är att använda följande rekursionsformel. (Det är brukligt att definiera det 0:te talet som 0.): : F 0 0, F 1 1 F n+ F n+1 + F n Det finns också slutna formler. Den vanligaste är F n jn - J- 1 j Nn (3) där j betecknar det s.k. gyllene snittet, som är den positiva roten 1+ till ekvationen x - x - 1 # 0. - 1 är den andra roten. (Det senare kan j enklast verifieras genom konstaterandet att produkten av rötterna är lika med konstanta termen i vänsterledet!) En värdefull observation är att ( ) j + 1 (Verifiera själv denna likhet!) j Låt oss bevisa att (3) är korrekt för alla n œ!. Basfall(en): För n 0 och n 1 stämmer (3). Ty då säger (3) att F 0 j0 - J- 1 j N0 F 0 1-1 0 och F 1 j - J- 1 j N och F 1 j - J- j 1 N1, dvs j+ 1 j H L 1, och bägge dessa likheter är i samklang med rekursionsformelns två basfall. Induktionssteget: Betrakta nu ett godtyckligt heltal. Ett sådant är på formen n 0 + för något n 0 œ!. Om vi kan visa likheten (3) för n n 0 +, under antagandet att (3) stämmer för n n 0 och för n n 0 + 1, så följer av basfallen att (3) stämmer för n. Och när (3) stämmer för n œ 81, <, så följer att (3) stämmer för n 3, osv.. Således räcker det att bevisa implikationen F n0 jn 0 - J- 1 j Nn 0, F n0 +1 jn0+1 - J- 1 j Nn 0+1 ï F n0 + # jn0+ - J- 1 j Nn 0+, något som vi klarar av på sju rader F n0 + - HrekL Fn0 +1 + F n0 - j n 0+ - J- 1 j Nn 0+ j n 0+ - J- 1 j Nn 0+ j Hi.aL n0+1 - J- 1 0+1 j Nn j n 0 - J- 1 j Nn 0 + Rekursion och induktion 6 - j n 0+ - J- 1 j Nn 0+

7 Rekursion och induktion HiiiL 1 jn0+1 + j n 0 - j n0+ + - 1 j HiiiL 1 jn0+1 + j n 0 - j n0+ + H-1L n 0 ÿ n 0 + - - 1 j n 0 +1 - - 1 j 1 j n 0+ + 1 j n 0+1-1 j n 0 HiiiL 1 -jn 0 Ij - j - 1M + H-1L n 0 1 ÿ j n 0+ I1 + j - j M H*L 1 -jn 0 ÿ 0 + H-1L n 0 1 ÿ j n 0+ ÿ 0 HiiiL 0. Teckenförklaringar: (rek) rekursionsformeln, (i.a) induktionsantagandet, (iii) förenklingar, (*) j är en rot till x - x - 1 # 0. Därmed är basfall och induktionssteg avklarade. Ñ Anmärkning 3 Förklara vilka svårigheter som uppstår, om man försöker göra ett induktionsbevis i ett enda steg. Enkel induktion i två eller flera steg Vårt induktionsbevis i EXEMPEL följde nedanstående mall: Basfallet: PH0L och PH1L Induktionssteget: PIn 0 M och PIn 0 + 1M ïpin 0 + M Om man behöver göra ett induktionsbevis baserat på en rekursionsformel som rekurserar 3 steg, blir mallen förstås Basfallet: PH0L, PH1L och PHL Induktionssteget: PIn 0 M, PIn 0 + 1M och PIn 0 + M ïpin 0 + 3M Stark induktion Ibland behöver induktionssteget kunna hoppa godtyckligt många steg, dvs som i följande mall. Basfallet: PH0L Induktionssteget: PH0L, PH1L,, PIn 0 M ï PIn 0 + 1M En bra illustration av stark induktion finns i beviset av existensdelen av aritmetikens fundamentalsats nedanför. n 0 Primtalsfaktorisering Ett primtal är ett naturligt tal som är större än 1 och som inte är lika med någon produkt av två mindre naturliga tal. Ett naturligt tal sägs vara sammansatt, om det är lika med en produkt av två mindre naturliga tal. T.ex. är 4, 6, 1 sammansatta, eftersom 4 ÿ, 6 ÿ 3, 1 ÿ 6 3 ÿ 4. Lägg märke till hur 1 kan skrivas på två olika sätt som en produkt av två tal. Annat är det om man försöker skriva 1 som en primtalsprodukt. Det går bara att göra på ett sätt: 1 ÿ ÿ 3. Detsamma gäller för varje tal>1. Se fundamentalsatsen nedanför. Med primtalsprodukt avses i kortaste fallet ett enda primtal. Längre primtalsprodukter består av två eller flera primtal (eventuellt kopior av samma primtal) multiplicerade med varandra, som ÿ 3, ÿ eller ÿ 3 ÿ 3 ÿ. Aritmetikens fundamentalsats Varje naturligt tal > 1 kan skrivas som en primtalsprodukt, och produkten är entydig, om vi bortser från ordningen mellan primtalsfaktorerna. BEVIS (av existensdelen): Låt PHnL vara påståendet "n är en primtalsprodukt". Vi ska nu bevisa att PHnL är korrekt för alla n. Basfall PHL stämmer, ty är ett primtal. Induktionssteget PHL, PH3L,, PIn 0 M ï PIn 0 + 1M Rekursion och induktion 8 Antag att alla påståendena PHL, PH3L,, PIn 0 M är sanna. Vad kan vi då säga om PIn 0 + 1M? Få se, låt oss betrakta talet n 0 + 1. Fall 1: Endera är n 0 + 1 ett primtal. Då stämmer PIn 0 + 1M. Fall : I annat fall är n 0 + 1 lika med en produkt av mindre tal, dvs. n 0 + 1 a ÿ b där a, b œ 9, 3,, n 0. (Varför kan inget av a, b vara lika med 1?) Av induktionsantagandet följer att a och b är primtalsprodukter. Men då är även n 0 + 1 en primtalsprodukt, dvs. PIn 0 + 1M stämmer. Ñ Anmärkning 4 Rekursionsformeln i ovanstående induktionsbevis är konstaterande i fall att "n 0 + 1 är lika med en produkt av mindre tal".

9 Rekursion och induktion Induktion på listor och träd Hittills har vi gjort induktionsbevis för påståenden definierade på naturliga tal. Att bevisprincipen funkar där beror ytterst på att de naturliga talen har en rekursiv struktur av typen "det finns ett minsta objekt, och varje annat objekt byggs av ett mindre objekt (genom att man ökar med en enhet)": Naturliga tal 0 är ett naturligt tal. Om n 0 är ett naturligt tal, så är också n 0 + 1 ett naturligt tal. Även listor, träd och binära träd har en motsvarande rekursiv struktur. Dvs. det finns ett minsta objekt, och varje större objekt byggs av mindre objekt av samma typ. Därför fungerar induktionsbevis även för påståenden definierade på sådana strukturer. Gängse definitioner av listor, träd och binära träd presenteras nedanför. Vi antar för enkelhets skull att det som benäms atomer nedanför är tal. Listor Träd @ D är en (tom) atomär lista. Om @a, b,, dd är en atomär lista, så är också @atom, a, b,, dd en atomär lista för varje atom. EXEMPEL @7, 11,, 3D är en atomär lista. Om T 1, T,, T n är (rotade) träd, så är också atom T 1 T T n ett (rotat) träd för varje val av atom. Och det minsta (rotade) trädet innehåller en ensam atom. Ett träds minsta beståndsdelar är bågar och noder. Atomerna finns i noderna. En nod från vilken det utgår en eller flera nedåtgående bågar kallas för förälder till noderna omedelbart nedanför. De senare kallas avkommor till föräldranoden. Noder som saknar avkommor kallas för löv, och en nod som saknar omedelbart nedanför. De senare kallas avkommor till föräldranoden. Noder som saknar avkommor kallas för löv, och en nod som saknar förälder kallas för rot. I figuren nedanför är 7,, 11, 13, 17 placerade i löven, och i roten. Binära träd EXEMPEL på träd. 3 1 7 11 13 17 Om T 1, T är binära träd, så är också atom T 1 T ett binärt träd för varje val av atom. Och det minsta binära trädet är tomt. Se exemplet nedanför där ett tomt binärt träd är placerat till vänster nedanför 7 och likaså till höger nedanför. De nedersta noderna EXEMPEL på binärt träd. Rekursion och induktion 10 3 7 11 13 EXEMPEL 3 Instickssortering Naturliga tal kan ordnas från mindre till större eller omvänt. Man säger att en enkel lista av tal är sorterad om dess element är placerade i storleksordning från mindre till större eller från större till mindre. T.ex. är @, 3, D, @, 3, D och @,, D sorterade, men inte @,, 3D. Nedanför definieras (rekursivt) en sorteringsfunktion som bygger på det enkla faktum att om man redan har sorterat hela listan förutom det första 19

11 Rekursion och induktion enkla faktum att om man redan har sorterat hela listan förutom det första elementet (betecknas med Resten nedanför), så behöver man bara sticka in det första elementet på rätt plats i den redan sorterade delen. Instickningen fungerar på så sätt att det element som skall stickas in i den redan sorterade listan jämförs med det första elementet i den sorterade listan. Och beroende på hur jämförelsen utfaller, vidtages relevant åtgärd. SorteraH @ D L @ D SorteraHLL StickInHFörstaHLL, SorteraHRestenHLLL StickInH x, @ D L @xd StickInHx, LL OmHx FörstaHLL, FogaInHx, LL, FogaInHFörstaHLL, StickInHx, RestenHLLLLL där FogaInHx, XL antas foga in x i X : s vänstra ände. Hur beräkningstyngd är instickssortering? Få se Låt oss först beräkna maximala antalet beräkningssteg (närmare bestämt jämförelser av typen x Första HLL) som StickIn tvingas utföra vid körning på en lista av godtycklig längd. (Det maximala antalet får man då det element som skall stickas in är större än alla element i listan.) Av rekursionsformeln för StickIn följer att nämnda antal ges av : AntalSteg StickIn H0L 0 AntalSteg StickIn HnL 1 + AntalSteg StickIn Hn - 1L Genom att driva ovanstående rekursionsformel i botten erhålls den slutna formeln AntalSteg StickIn InM n. Genomför själv detta "drivande"! Låt nu AntalSteg Sortera HnL beteckna antalet steg som Sortera måste utföra vid körning på en godtycklig lista av längd n. Då följer att : AntalSteg Sortera I0M 0 AntalSteg Sortera InM AntalSteg StickIn Hn - 1L + AntalSteg Sortera Hn - 1L n -1 + AntalSteg Sortera In - 1M Och om vi driver rekursionsformeln för AntalSteg Sortera i botten får vi AntalSteg Sortera HnL n - 1 + n - 1 + n - + AntalSteg Sortera Hn - L AntalSteg Sortera Hn - 1L n - 1 + n - + n - 3 + AntalSteg Sortera Hn - 3L n - 1 + n - + + n - Hn - 1L + n-n + AntalSteg Sortera Hn - nl n - 1 + n - + + 1 TriangelTalHn - 1L n Hn-1L. Rekursion och induktion 1 Anmärkning Uppskattningen ovanför visar att antalet beräkningssteg för instickssortering inte ökar fortare än kvadraten på listlängden. EXEMPEL 4 Ett fullt binärt träd är ett icketomt binärt träd där varje nod, som inte är ett löv, har två stycken avkommor. Se figuren nedanför. Visa att, om V är mängden av vägar (från rotnoden ned till löven) i ett fullt binärt träd, så är - v # 1, vœv där v är lika med v:s väglängd mätt i antalet vägstumpar. T.ex. är - v # -3 + -3 + - + - + - 1 för figurens träd. vœv LÖSNING Basfall Det minsta fulla binära trädet har en rotnod och inget mer. Rotnoden är i detta fall även ett löv. Så den enda vägen från rot till löv har längd 0. Därmed har summan i (4) enbart termen 0, dvs 1. Induktionssteget Betrakta nu ett godtyckligt fullt binärt träd T större än det nyss betraktade. är byggt av två fulla binära träd som (4)

13 Rekursion och induktion Induktionssteget Betrakta nu ett godtyckligt fullt binärt träd T större än det nyss betraktade. T är byggt av två fulla binära träd T 1, T som bägge är mindre än T och är kopplade till T:s rotnod. T:s rotnod T 1 T Att T 1, T är fulla båda två följer av att om någon av dem inte skulle vara fullt, skulle T inte heller vara det. Notera att storleken på träden T 1, T kan vara vad som helst mellan 1 och n -, om n är T:s storlek mätt i antalet noder. Så induktionssteget måste vara av typen stark induktion. Antag därför att varje fullt binärt träd som är mindre än T (mindre än n - 1 är egentligen tillräckligt) har summaegenskapen (4). För att visa att även T då måste ha egenskapen (4), konstaterar vi att varje väg v från T:s rot inleds med en vägstump av längd 1. Resten av v ligger i T 1 eller T. Det följer (om V betecknar T:s vägmängd, och V 1, V beteknar T 1, T :s dito) att - v # -H1+ v 1 L + -H1+ v L vœv v 1 œv 1 v œv v 1 œv 1-1 ÿ - v 1 + v œv -1 ÿ - v -1 ÿ - v 1 + - v i.a. 1 v 1 œv 1 v œv ÿ H1 + 1L 1. Ñ