• No results found

MAT1030 – Diskret matematikk Forelesning 14: Rekursjon og induksjon Dag Normann

N/A
N/A
Protected

Academic year: 2022

Share "MAT1030 – Diskret matematikk Forelesning 14: Rekursjon og induksjon Dag Normann"

Copied!
219
0
0

Laster.... (Se fulltekst nå)

Fulltekst

(1)

MAT1030 – Diskret matematikk

Forelesning 14: Rekursjon og induksjon

Dag Normann

Matematisk Institutt, Universitetet i Oslo

27. februar 2008

(2)

Oppsummering

Mandag repeterte vi en del om relasjoner, da spesielt om ekvivalensrelasjoner og partielle ordninger.

Vi snakket videre omfunksjoner.

Det er noen grunnleggende begreper i tilknytning til kapitlet om funksjoner man m˚a kjenne til

for ˚a kunne g˚a eksamensdagen i møte med ro i sinnet.

Det er

Injektivefunksjoner, ogs˚a kalt1-1-funksjoner eller enentydige funksjoner.

Surjektivefunksjoner (onto). Sammensetningav funksjoner. Omvendteellerinverse funksjoner.

MAT1030 – Diskret matematikk 27. februar 2008 2

(3)

Oppsummering

Mandag repeterte vi en del om relasjoner, da spesielt om ekvivalensrelasjoner og partielle ordninger.

Vi snakket videre omfunksjoner.

Det er noen grunnleggende begreper i tilknytning til kapitlet om funksjoner man m˚a kjenne til

for ˚a kunne g˚a eksamensdagen i møte med ro i sinnet.

Det er

Injektivefunksjoner, ogs˚a kalt1-1-funksjoner eller enentydige funksjoner.

Surjektivefunksjoner (onto). Sammensetningav funksjoner. Omvendteellerinverse funksjoner.

(4)

Oppsummering

Mandag repeterte vi en del om relasjoner, da spesielt om ekvivalensrelasjoner og partielle ordninger.

Vi snakket videre omfunksjoner.

Det er noen grunnleggende begreper i tilknytning til kapitlet om funksjoner man m˚a kjenne til

for ˚a kunne g˚a eksamensdagen i møte med ro i sinnet.

Det er

Injektivefunksjoner, ogs˚a kalt1-1-funksjoner eller enentydige funksjoner.

Surjektivefunksjoner (onto). Sammensetningav funksjoner. Omvendteellerinverse funksjoner.

MAT1030 – Diskret matematikk 27. februar 2008 2

(5)

Oppsummering

Mandag repeterte vi en del om relasjoner, da spesielt om ekvivalensrelasjoner og partielle ordninger.

Vi snakket videre omfunksjoner.

Det er noen grunnleggende begreper i tilknytning til kapitlet om funksjoner man m˚a kjenne til for ˚a kunne g˚a eksamensdagen i møte med ro i sinnet.

Det er

Injektivefunksjoner, ogs˚a kalt1-1-funksjoner eller enentydige funksjoner.

Surjektivefunksjoner (onto). Sammensetningav funksjoner. Omvendteellerinverse funksjoner.

(6)

Oppsummering

Mandag repeterte vi en del om relasjoner, da spesielt om ekvivalensrelasjoner og partielle ordninger.

Vi snakket videre omfunksjoner.

Det er noen grunnleggende begreper i tilknytning til kapitlet om funksjoner man m˚a kjenne til for ˚a kunne g˚a eksamensdagen i møte med ro i sinnet.

Det er

Injektivefunksjoner, ogs˚a kalt1-1-funksjoner ellerenentydige funksjoner.

Surjektivefunksjoner (onto). Sammensetningav funksjoner. Omvendteellerinverse funksjoner.

MAT1030 – Diskret matematikk 27. februar 2008 2

(7)

Oppsummering

Mandag repeterte vi en del om relasjoner, da spesielt om ekvivalensrelasjoner og partielle ordninger.

Vi snakket videre omfunksjoner.

Det er noen grunnleggende begreper i tilknytning til kapitlet om funksjoner man m˚a kjenne til for ˚a kunne g˚a eksamensdagen i møte med ro i sinnet.

Det er

Injektivefunksjoner, ogs˚a kalt1-1-funksjoner ellerenentydige funksjoner.

Surjektivefunksjoner (onto). Sammensetningav funksjoner. Omvendteellerinverse funksjoner.

(8)

Oppsummering

Mandag repeterte vi en del om relasjoner, da spesielt om ekvivalensrelasjoner og partielle ordninger.

Vi snakket videre omfunksjoner.

Det er noen grunnleggende begreper i tilknytning til kapitlet om funksjoner man m˚a kjenne til for ˚a kunne g˚a eksamensdagen i møte med ro i sinnet.

Det er

Injektivefunksjoner, ogs˚a kalt1-1-funksjoner ellerenentydige funksjoner.

Surjektivefunksjoner (onto).

Sammensetningav funksjoner. Omvendteellerinverse funksjoner.

MAT1030 – Diskret matematikk 27. februar 2008 2

(9)

Oppsummering

Mandag repeterte vi en del om relasjoner, da spesielt om ekvivalensrelasjoner og partielle ordninger.

Vi snakket videre omfunksjoner.

Det er noen grunnleggende begreper i tilknytning til kapitlet om funksjoner man m˚a kjenne til for ˚a kunne g˚a eksamensdagen i møte med ro i sinnet.

Det er

Injektivefunksjoner, ogs˚a kalt1-1-funksjoner ellerenentydige funksjoner.

Surjektivefunksjoner (onto).

Sammensetningav funksjoner.

Omvendteellerinverse funksjoner.

(10)

Oppsummering

Mandag repeterte vi en del om relasjoner, da spesielt om ekvivalensrelasjoner og partielle ordninger.

Vi snakket videre omfunksjoner.

Det er noen grunnleggende begreper i tilknytning til kapitlet om funksjoner man m˚a kjenne til for ˚a kunne g˚a eksamensdagen i møte med ro i sinnet.

Det er

Injektivefunksjoner, ogs˚a kalt1-1-funksjoner ellerenentydige funksjoner.

Surjektivefunksjoner (onto).

Sammensetningav funksjoner.

Omvendteellerinversefunksjoner.

MAT1030 – Diskret matematikk 27. februar 2008 2

(11)

Oppsummering

Det er ogs˚a viktig ˚a holde orden p˚a hva som menes med:

Definisjonsomr˚adettil en funksjon. Verdiomr˚adettil en funksjon. Bildemengdentil en funksjon. I tillegg bør man kunne vite n˚ar - man kan finne en invers til en funksjon - man kan sette sammen to funksjoner.

Dette avslutter den abstrakte innføringen i funksjoner.

Før vi g˚ar over til neste kapittel skal vi imidlertid se litt p˚a hva det vil si at en funksjon erberegnbar.

(12)

Oppsummering

Det er ogs˚a viktig ˚a holde orden p˚a hva som menes med:

Definisjonsomr˚adettil en funksjon.

Verdiomr˚adettil en funksjon. Bildemengdentil en funksjon. I tillegg bør man kunne vite n˚ar - man kan finne en invers til en funksjon - man kan sette sammen to funksjoner.

Dette avslutter den abstrakte innføringen i funksjoner.

Før vi g˚ar over til neste kapittel skal vi imidlertid se litt p˚a hva det vil si at en funksjon erberegnbar.

MAT1030 – Diskret matematikk 27. februar 2008 3

(13)

Oppsummering

Det er ogs˚a viktig ˚a holde orden p˚a hva som menes med:

Definisjonsomr˚adettil en funksjon.

Verdiomr˚adettil en funksjon.

Bildemengdentil en funksjon. I tillegg bør man kunne vite n˚ar - man kan finne en invers til en funksjon - man kan sette sammen to funksjoner.

Dette avslutter den abstrakte innføringen i funksjoner.

Før vi g˚ar over til neste kapittel skal vi imidlertid se litt p˚a hva det vil si at en funksjon erberegnbar.

(14)

Oppsummering

Det er ogs˚a viktig ˚a holde orden p˚a hva som menes med:

Definisjonsomr˚adettil en funksjon.

Verdiomr˚adettil en funksjon.

Bildemengdentil en funksjon.

I tillegg bør man kunne vite n˚ar - man kan finne en invers til en funksjon - man kan sette sammen to funksjoner.

Dette avslutter den abstrakte innføringen i funksjoner.

Før vi g˚ar over til neste kapittel skal vi imidlertid se litt p˚a hva det vil si at en funksjon erberegnbar.

MAT1030 – Diskret matematikk 27. februar 2008 3

(15)

Oppsummering

Det er ogs˚a viktig ˚a holde orden p˚a hva som menes med:

Definisjonsomr˚adettil en funksjon.

Verdiomr˚adettil en funksjon.

Bildemengdentil en funksjon.

I tillegg bør man kunne vite n˚ar

- man kan finne en invers til en funksjon - man kan sette sammen to funksjoner.

Dette avslutter den abstrakte innføringen i funksjoner.

Før vi g˚ar over til neste kapittel skal vi imidlertid se litt p˚a hva det vil si at en funksjon erberegnbar.

(16)

Oppsummering

Det er ogs˚a viktig ˚a holde orden p˚a hva som menes med:

Definisjonsomr˚adettil en funksjon.

Verdiomr˚adettil en funksjon.

Bildemengdentil en funksjon.

I tillegg bør man kunne vite n˚ar - man kan finne en invers til en funksjon

- man kan sette sammen to funksjoner.

Dette avslutter den abstrakte innføringen i funksjoner.

Før vi g˚ar over til neste kapittel skal vi imidlertid se litt p˚a hva det vil si at en funksjon erberegnbar.

MAT1030 – Diskret matematikk 27. februar 2008 3

(17)

Oppsummering

Det er ogs˚a viktig ˚a holde orden p˚a hva som menes med:

Definisjonsomr˚adettil en funksjon.

Verdiomr˚adettil en funksjon.

Bildemengdentil en funksjon.

I tillegg bør man kunne vite n˚ar - man kan finne en invers til en funksjon - man kan sette sammen to funksjoner.

Dette avslutter den abstrakte innføringen i funksjoner.

Før vi g˚ar over til neste kapittel skal vi imidlertid se litt p˚a hva det vil si at en funksjon erberegnbar.

(18)

Oppsummering

Det er ogs˚a viktig ˚a holde orden p˚a hva som menes med:

Definisjonsomr˚adettil en funksjon.

Verdiomr˚adettil en funksjon.

Bildemengdentil en funksjon.

I tillegg bør man kunne vite n˚ar - man kan finne en invers til en funksjon - man kan sette sammen to funksjoner.

Dette avslutter den abstrakte innføringen i funksjoner.

Før vi g˚ar over til neste kapittel skal vi imidlertid se litt p˚a hva det vil si at en funksjon erberegnbar.

MAT1030 – Diskret matematikk 27. februar 2008 3

(19)

Oppsummering

Det er ogs˚a viktig ˚a holde orden p˚a hva som menes med:

Definisjonsomr˚adettil en funksjon.

Verdiomr˚adettil en funksjon.

Bildemengdentil en funksjon.

I tillegg bør man kunne vite n˚ar - man kan finne en invers til en funksjon - man kan sette sammen to funksjoner.

Dette avslutter den abstrakte innføringen i funksjoner.

Før vi g˚ar over til neste kapittel skal vi imidlertid se litt p˚a hva det vil si at en funksjon erberegnbar.

(20)

Beregnbare funksjoner

IT dreier seg mye om hvordan man løser oppgaver ved hjelp av elektroniske hjelpemidler, fortrinnsvis datamaskiner.

All IT-aktivitet p˚a maskin-niv˚a styres avprogrammer, uansett om vi ser dem eller ikke.

Hvis man skal kunne forst˚a informasjonsteknologiens begrensninger, m˚a vi derfor forst˚a grensene for hva det er mulig ˚a skrive programmer for.

Alle programmer beskriver egentlig funksjoner, selv om noen argumenter (som maskintid, maskinarkitektur o.a.) ikke er synlig. Det er derfor av interesse ˚a studere de funksjonene som lar seg uttrykke ved hjelp av programmer.

MAT1030 – Diskret matematikk 27. februar 2008 4

(21)

Beregnbare funksjoner

IT dreier seg mye om hvordan man løser oppgaver ved hjelp av elektroniske hjelpemidler, fortrinnsvis datamaskiner.

All IT-aktivitet p˚a maskin-niv˚a styres avprogrammer, uansett om vi ser dem eller ikke.

Hvis man skal kunne forst˚a informasjonsteknologiens begrensninger, m˚a vi derfor forst˚a grensene for hva det er mulig ˚a skrive programmer for.

Alle programmer beskriver egentlig funksjoner, selv om noen argumenter (som maskintid, maskinarkitektur o.a.) ikke er synlig. Det er derfor av interesse ˚a studere de funksjonene som lar seg uttrykke ved hjelp av programmer.

(22)

Beregnbare funksjoner

IT dreier seg mye om hvordan man løser oppgaver ved hjelp av elektroniske hjelpemidler, fortrinnsvis datamaskiner.

All IT-aktivitet p˚a maskin-niv˚a styres avprogrammer, uansett om vi ser dem eller ikke.

Hvis man skal kunne forst˚a informasjonsteknologiens begrensninger, m˚a vi derfor forst˚a grensene for hva det er mulig ˚a skrive programmer for.

Alle programmer beskriver egentlig funksjoner, selv om noen argumenter (som maskintid, maskinarkitektur o.a.) ikke er synlig. Det er derfor av interesse ˚a studere de funksjonene som lar seg uttrykke ved hjelp av programmer.

MAT1030 – Diskret matematikk 27. februar 2008 4

(23)

Beregnbare funksjoner

IT dreier seg mye om hvordan man løser oppgaver ved hjelp av elektroniske hjelpemidler, fortrinnsvis datamaskiner.

All IT-aktivitet p˚a maskin-niv˚a styres avprogrammer, uansett om vi ser dem eller ikke.

Hvis man skal kunne forst˚a informasjonsteknologiens begrensninger, m˚a vi derfor forst˚a grensene for hva det er mulig ˚a skrive programmer for.

Alle programmer beskriver egentlig funksjoner, selv om noen argumenter (som maskintid, maskinarkitektur o.a.) ikke er synlig.

Det er derfor av interesse ˚a studere de funksjonene som lar seg uttrykke ved hjelp av programmer.

(24)

Beregnbare funksjoner

IT dreier seg mye om hvordan man løser oppgaver ved hjelp av elektroniske hjelpemidler, fortrinnsvis datamaskiner.

All IT-aktivitet p˚a maskin-niv˚a styres avprogrammer, uansett om vi ser dem eller ikke.

Hvis man skal kunne forst˚a informasjonsteknologiens begrensninger, m˚a vi derfor forst˚a grensene for hva det er mulig ˚a skrive programmer for.

Alle programmer beskriver egentlig funksjoner, selv om noen argumenter (som maskintid, maskinarkitektur o.a.) ikke er synlig.

Det er derfor av interesse ˚a studere de funksjonene som lar seg uttrykke ved hjelp av programmer.

MAT1030 – Diskret matematikk 27. februar 2008 4

(25)

Beregnbare funksjoner

Hvis vi begrenser oss til funksjoner fra N0 tilN0 har vi gode

matematiske karakteriseringer av de beregnbarefunksjonene, det vil si de som kan programmeres i et eller annet programmeringsspr˚ak.

(N0 =N∪ {0})

Det viser seg at alle programmerbare funksjoner fraN0 tilN0 kan formuleres som en av v˚are pseudokoder, hvor vi bare bruker navn p˚a tallene 0 og 1, addisjon og multiplikasjon og Booleske tester uttrykt ved hjelp av = og <.

Det er ikke uvanlig for logikere eller folk som arbeider med teoretisk databehandling ˚a la de naturlige tallene starte med 0.

Vi skal være snille og holde oss til m˚aten boka gjør det p˚a.

(26)

Beregnbare funksjoner

Hvis vi begrenser oss til funksjoner fra N0 tilN0 har vi gode

matematiske karakteriseringer av de beregnbarefunksjonene, det vil si de som kan programmeres i et eller annet programmeringsspr˚ak.

(N0 =N∪ {0})

Det viser seg at alle programmerbare funksjoner fraN0 tilN0 kan formuleres som en av v˚are pseudokoder, hvor vi bare bruker navn p˚a tallene 0 og 1, addisjon og multiplikasjon og Booleske tester uttrykt ved hjelp av = og <.

Det er ikke uvanlig for logikere eller folk som arbeider med teoretisk databehandling ˚a la de naturlige tallene starte med 0.

Vi skal være snille og holde oss til m˚aten boka gjør det p˚a.

MAT1030 – Diskret matematikk 27. februar 2008 5

(27)

Beregnbare funksjoner

Hvis vi begrenser oss til funksjoner fra N0 tilN0 har vi gode

matematiske karakteriseringer av de beregnbarefunksjonene, det vil si de som kan programmeres i et eller annet programmeringsspr˚ak.

(N0 =N∪ {0})

Det viser seg at alle programmerbare funksjoner fraN0 tilN0 kan formuleres som en av v˚are pseudokoder, hvor vi bare bruker navn p˚a tallene 0 og 1, addisjon og multiplikasjon og Booleske tester uttrykt ved hjelp av = og <.

Det er ikke uvanlig for logikere eller folk som arbeider med teoretisk databehandling ˚a la de naturlige tallene starte med 0.

Vi skal være snille og holde oss til m˚aten boka gjør det p˚a.

(28)

Beregnbare funksjoner

Hvis vi begrenser oss til funksjoner fra N0 tilN0 har vi gode

matematiske karakteriseringer av de beregnbarefunksjonene, det vil si de som kan programmeres i et eller annet programmeringsspr˚ak.

(N0 =N∪ {0})

Det viser seg at alle programmerbare funksjoner fraN0 tilN0 kan formuleres som en av v˚are pseudokoder, hvor vi bare bruker navn p˚a tallene 0 og 1, addisjon og multiplikasjon og Booleske tester uttrykt ved hjelp av = og <.

Det er ikke uvanlig for logikere eller folk som arbeider med teoretisk databehandling ˚a la de naturlige tallene starte med 0.

Vi skal være snille og holde oss til m˚aten boka gjør det p˚a.

MAT1030 – Diskret matematikk 27. februar 2008 5

(29)

Beregnbare funksjoner

Som en forberedelse til kapittel 7 om induksjon og rekursjon, skal vi se p˚a to pseudokoder hvor vi har p˚alagt oss ˚a begrense oss til

addisjon, multiplikasjon og Booleske tester med = og<(men dermed f˚ar lov til ˚a bruke ≤).

I det første eksemplet skal vi beregne f(x,y) =max{0,x−y}. I det andre eksemplet skal vi beregneg(x,y) =xy.

(30)

Beregnbare funksjoner

Som en forberedelse til kapittel 7 om induksjon og rekursjon, skal vi se p˚a to pseudokoder hvor vi har p˚alagt oss ˚a begrense oss til

addisjon, multiplikasjon og Booleske tester med = og<(men dermed f˚ar lov til ˚a bruke ≤).

I det første eksemplet skal vi beregne f(x,y) =max{0,x−y}.

I det andre eksemplet skal vi beregneg(x,y) =xy.

MAT1030 – Diskret matematikk 27. februar 2008 6

(31)

Beregnbare funksjoner

Som en forberedelse til kapittel 7 om induksjon og rekursjon, skal vi se p˚a to pseudokoder hvor vi har p˚alagt oss ˚a begrense oss til

addisjon, multiplikasjon og Booleske tester med = og<(men dermed f˚ar lov til ˚a bruke ≤).

I det første eksemplet skal vi beregne f(x,y) =max{0,x−y}.

I det andre eksemplet skal vi beregneg(x,y) =xy.

(32)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner)

1. Input x [x∈N0] 2. Input y [y ∈N0] 3. z ←0

4. Whiley <x do

4.1 y y+ 1 4.2 z z+ 1

5. Output z

Vi har ikke snakket om induksjonsbevisenn˚a. Det vil være den naturlige metoden for ˚a vise korrekthet av et slikt program.

I dette tilfellet ser vi at hvisx ≤y starter vi ikke løkka i det hele tatt, mens hvisy <x “teller” viy opp til x samtidig som vi øker verdien av z tilsvarende mye.

MAT1030 – Diskret matematikk 27. februar 2008 7

(33)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. z ←0

4. Whiley <x do

4.1 y y+ 1 4.2 z z+ 1

5. Output z

Vi har ikke snakket om induksjonsbevisenn˚a. Det vil være den naturlige metoden for ˚a vise korrekthet av et slikt program.

I dette tilfellet ser vi at hvisx ≤y starter vi ikke løkka i det hele tatt, mens hvisy <x “teller” viy opp til x samtidig som vi øker verdien av z tilsvarende mye.

(34)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0]

3. z ←0

4. Whiley <x do

4.1 y y+ 1 4.2 z z+ 1

5. Output z

Vi har ikke snakket om induksjonsbevisenn˚a. Det vil være den naturlige metoden for ˚a vise korrekthet av et slikt program.

I dette tilfellet ser vi at hvisx ≤y starter vi ikke løkka i det hele tatt, mens hvisy <x “teller” viy opp til x samtidig som vi øker verdien av z tilsvarende mye.

MAT1030 – Diskret matematikk 27. februar 2008 7

(35)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. z ←0

4. Whiley <x do

4.1 y y+ 1 4.2 z z+ 1

5. Output z

Vi har ikke snakket om induksjonsbevisenn˚a. Det vil være den naturlige metoden for ˚a vise korrekthet av et slikt program.

I dette tilfellet ser vi at hvisx ≤y starter vi ikke løkka i det hele tatt, mens hvisy <x “teller” viy opp til x samtidig som vi øker verdien av z tilsvarende mye.

(36)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. z ←0

4. Whiley <x do

4.1 y y+ 1 4.2 z z+ 1 5. Output z

Vi har ikke snakket om induksjonsbevisenn˚a. Det vil være den naturlige metoden for ˚a vise korrekthet av et slikt program.

I dette tilfellet ser vi at hvisx ≤y starter vi ikke løkka i det hele tatt, mens hvisy <x “teller” viy opp til x samtidig som vi øker verdien av z tilsvarende mye.

MAT1030 – Diskret matematikk 27. februar 2008 7

(37)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. z ←0

4. Whiley <x do 4.1 yy+ 1

4.2 z z+ 1 5. Output z

Vi har ikke snakket om induksjonsbevisenn˚a. Det vil være den naturlige metoden for ˚a vise korrekthet av et slikt program.

I dette tilfellet ser vi at hvisx ≤y starter vi ikke løkka i det hele tatt, mens hvisy <x “teller” viy opp til x samtidig som vi øker verdien av z tilsvarende mye.

(38)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. z ←0

4. Whiley <x do 4.1 yy+ 1 4.2 z z+ 1

5. Output z

Vi har ikke snakket om induksjonsbevisenn˚a. Det vil være den naturlige metoden for ˚a vise korrekthet av et slikt program.

I dette tilfellet ser vi at hvisx ≤y starter vi ikke løkka i det hele tatt, mens hvisy <x “teller” viy opp til x samtidig som vi øker verdien av z tilsvarende mye.

MAT1030 – Diskret matematikk 27. februar 2008 7

(39)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. z ←0

4. Whiley <x do 4.1 yy+ 1 4.2 z z+ 1 5. Output z

Vi har ikke snakket om induksjonsbevisenn˚a. Det vil være den naturlige metoden for ˚a vise korrekthet av et slikt program.

I dette tilfellet ser vi at hvisx ≤y starter vi ikke løkka i det hele tatt, mens hvisy <x “teller” viy opp til x samtidig som vi øker verdien av z tilsvarende mye.

(40)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. z ←0

4. Whiley <x do 4.1 yy+ 1 4.2 z z+ 1 5. Output z

Vi har ikke snakket om induksjonsbevisenn˚a. Det vil være den naturlige metoden for ˚a vise korrekthet av et slikt program.

I dette tilfellet ser vi at hvisx ≤y starter vi ikke løkka i det hele tatt, mens hvisy <x “teller” viy opp til x samtidig som vi øker verdien av z tilsvarende mye.

MAT1030 – Diskret matematikk 27. februar 2008 7

(41)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. z ←0

4. Whiley <x do 4.1 yy+ 1 4.2 z z+ 1 5. Output z

Vi har ikke snakket om induksjonsbevisenn˚a. Det vil være den naturlige metoden for ˚a vise korrekthet av et slikt program.

I dette tilfellet ser vi at hvisx ≤y starter vi ikke løkka i det hele tatt, mens hvisy <x “teller” viy opp til x samtidig som vi øker verdien av z tilsvarende mye.

(42)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner)

1. Input x [x∈N0] 2. Input y [y ∈N0] 3. u ←0

4. z ←1

5. Whileu <y do

5.1 z z·x 5.2 uu+ 1

6. Output z

Dette resulterer i at vi multipliserer x med seg selv y ganger, alts˚a at vi beregner xy.

MAT1030 – Diskret matematikk 27. februar 2008 8

(43)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. u ←0

4. z ←1

5. Whileu <y do

5.1 z z·x 5.2 uu+ 1

6. Output z

Dette resulterer i at vi multipliserer x med seg selv y ganger, alts˚a at vi beregner xy.

(44)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0]

3. u ←0 4. z ←1

5. Whileu <y do

5.1 z z·x 5.2 uu+ 1

6. Output z

Dette resulterer i at vi multipliserer x med seg selv y ganger, alts˚a at vi beregner xy.

MAT1030 – Diskret matematikk 27. februar 2008 8

(45)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. u ←0

4. z ←1

5. Whileu <y do

5.1 z z·x 5.2 uu+ 1

6. Output z

Dette resulterer i at vi multipliserer x med seg selv y ganger, alts˚a at vi beregner xy.

(46)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. u ←0

4. z ←1

5. Whileu <y do

5.1 z z·x 5.2 uu+ 1

6. Output z

Dette resulterer i at vi multipliserer x med seg selv y ganger, alts˚a at vi beregner xy.

MAT1030 – Diskret matematikk 27. februar 2008 8

(47)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. u ←0

4. z ←1

5. Whileu <y do

5.1 z z·x 5.2 uu+ 1 6. Output z

Dette resulterer i at vi multipliserer x med seg selv y ganger, alts˚a at vi beregner xy.

(48)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. u ←0

4. z ←1

5. Whileu <y do 5.1 z z·x

5.2 uu+ 1 6. Output z

Dette resulterer i at vi multipliserer x med seg selv y ganger, alts˚a at vi beregner xy.

MAT1030 – Diskret matematikk 27. februar 2008 8

(49)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. u ←0

4. z ←1

5. Whileu <y do 5.1 z z·x 5.2 uu+ 1

6. Output z

Dette resulterer i at vi multipliserer x med seg selv y ganger, alts˚a at vi beregner xy.

(50)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. u ←0

4. z ←1

5. Whileu <y do 5.1 z z·x 5.2 uu+ 1 6. Output z

Dette resulterer i at vi multipliserer x med seg selv y ganger, alts˚a at vi beregner xy.

MAT1030 – Diskret matematikk 27. februar 2008 8

(51)

Beregnbare funksjoner

Eksempel (Beregnbare funksjoner) 1. Input x [x∈N0]

2. Input y [y ∈N0] 3. u ←0

4. z ←1

5. Whileu <y do 5.1 z z·x 5.2 uu+ 1 6. Output z

Dette resulterer i at vi multipliserer x med seg selv y ganger, alts˚a at vi beregner xy.

(52)

Beregnbare funksjoner

I programmeringssammenheng er det ikke alltid s˚a lett ˚a vite n˚ar et gitt program med et gitt input faktisk gir oss et output i den mengden hvor vi vil ha det.

I verste fall kan vi skrive programmer for funksjoner hvor det er umulig ˚a bestemme hva definisjonsomr˚adet er.

Innenfor IT er det derfor naturlig ogs˚a ˚a studerepartielle funksjoner fra en mengdeX til en mengdeY.

Dette vil være funksjoner hvor definisjonsomr˚adet er en delmengde av X og hvor verdiomr˚adet erY.

Tolkningen av et program som en funksjon fra et Cartesisk produkt av datatyper til en datatype vil vanligvis være som en partiell funksjon.

MAT1030 – Diskret matematikk 27. februar 2008 9

(53)

Beregnbare funksjoner

I programmeringssammenheng er det ikke alltid s˚a lett ˚a vite n˚ar et gitt program med et gitt input faktisk gir oss et output i den mengden hvor vi vil ha det.

I verste fall kan vi skrive programmer for funksjoner hvor det er umulig ˚a bestemme hva definisjonsomr˚adet er.

Innenfor IT er det derfor naturlig ogs˚a ˚a studerepartielle funksjoner fra en mengdeX til en mengdeY.

Dette vil være funksjoner hvor definisjonsomr˚adet er en delmengde av X og hvor verdiomr˚adet erY.

Tolkningen av et program som en funksjon fra et Cartesisk produkt av datatyper til en datatype vil vanligvis være som en partiell funksjon.

(54)

Beregnbare funksjoner

I programmeringssammenheng er det ikke alltid s˚a lett ˚a vite n˚ar et gitt program med et gitt input faktisk gir oss et output i den mengden hvor vi vil ha det.

I verste fall kan vi skrive programmer for funksjoner hvor det er umulig ˚a bestemme hva definisjonsomr˚adet er.

Innenfor IT er det derfor naturlig ogs˚a ˚a studerepartielle funksjoner fra en mengdeX til en mengdeY.

Dette vil være funksjoner hvor definisjonsomr˚adet er en delmengde av X og hvor verdiomr˚adet erY.

Tolkningen av et program som en funksjon fra et Cartesisk produkt av datatyper til en datatype vil vanligvis være som en partiell funksjon.

MAT1030 – Diskret matematikk 27. februar 2008 9

(55)

Beregnbare funksjoner

I programmeringssammenheng er det ikke alltid s˚a lett ˚a vite n˚ar et gitt program med et gitt input faktisk gir oss et output i den mengden hvor vi vil ha det.

I verste fall kan vi skrive programmer for funksjoner hvor det er umulig ˚a bestemme hva definisjonsomr˚adet er.

Innenfor IT er det derfor naturlig ogs˚a ˚a studerepartielle funksjoner fra en mengdeX til en mengdeY.

Dette vil være funksjoner hvor definisjonsomr˚adet er en delmengde av X og hvor verdiomr˚adet erY.

Tolkningen av et program som en funksjon fra et Cartesisk produkt av datatyper til en datatype vil vanligvis være som en partiell funksjon.

(56)

Beregnbare funksjoner

I programmeringssammenheng er det ikke alltid s˚a lett ˚a vite n˚ar et gitt program med et gitt input faktisk gir oss et output i den mengden hvor vi vil ha det.

I verste fall kan vi skrive programmer for funksjoner hvor det er umulig ˚a bestemme hva definisjonsomr˚adet er.

Innenfor IT er det derfor naturlig ogs˚a ˚a studerepartielle funksjoner fra en mengdeX til en mengdeY.

Dette vil være funksjoner hvor definisjonsomr˚adet er en delmengde av X og hvor verdiomr˚adet erY.

Tolkningen av et program som en funksjon fra et Cartesisk produkt av datatyper til en datatype vil vanligvis være som en partiell funksjon.

MAT1030 – Diskret matematikk 27. februar 2008 9

(57)

OVER TIL KAPITTEL 7

(58)

Innledning til rekursjon og induksjon

Vi skal n˚a starte p˚a avsnittet om rekursivekonstruksjoner og bevis ved induksjon.

Dette er det første stedet hvor ˚arets MAT1030 vil omfatte mer stoff enn det læreboka omfatter.

Det betyr at forelesningene er ˚a betrakte som pensum, ogs˚a der de g˚ar ut over rammene til læreboka.

Alt stoff som er eksamensrelevant vil man finne i læreboka eller i forelesningsnotatene som legges ut p˚a nettet.

MAT1030 – Diskret matematikk 27. februar 2008 11

(59)

Innledning til rekursjon og induksjon

Vi skal n˚a starte p˚a avsnittet om rekursivekonstruksjoner og bevis ved induksjon.

Dette er det første stedet hvor ˚arets MAT1030 vil omfatte mer stoff enn det læreboka omfatter.

Det betyr at forelesningene er ˚a betrakte som pensum, ogs˚a der de g˚ar ut over rammene til læreboka.

Alt stoff som er eksamensrelevant vil man finne i læreboka eller i forelesningsnotatene som legges ut p˚a nettet.

(60)

Innledning til rekursjon og induksjon

Vi skal n˚a starte p˚a avsnittet om rekursivekonstruksjoner og bevis ved induksjon.

Dette er det første stedet hvor ˚arets MAT1030 vil omfatte mer stoff enn det læreboka omfatter.

Det betyr at forelesningene er ˚a betrakte som pensum, ogs˚a der de g˚ar ut over rammene til læreboka.

Alt stoff som er eksamensrelevant vil man finne i læreboka eller i forelesningsnotatene som legges ut p˚a nettet.

MAT1030 – Diskret matematikk 27. februar 2008 11

(61)

Innledning til rekursjon og induksjon

Vi skal n˚a starte p˚a avsnittet om rekursivekonstruksjoner og bevis ved induksjon.

Dette er det første stedet hvor ˚arets MAT1030 vil omfatte mer stoff enn det læreboka omfatter.

Det betyr at forelesningene er ˚a betrakte som pensum, ogs˚a der de g˚ar ut over rammene til læreboka.

Alt stoff som er eksamensrelevant vil man finne i læreboka eller i forelesningsnotatene som legges ut p˚a nettet.

(62)

Innledning til rekursjon og induksjon

Læreboka behandler for det meste rekursjon og induksjon over de naturlige talleneN.

I en IT-sammenheng finnes det andre induktivt konstruerte mengder hvor tilsvarende metoder har mening.

Vi skal etterhvert se p˚a noen generelle og spesielle eksempler av interesse for IT.

Vi skal imidlertid først se p˚a rekursjon i en begrenset, men viktig, forstand.

MAT1030 – Diskret matematikk 27. februar 2008 12

(63)

Innledning til rekursjon og induksjon

Læreboka behandler for det meste rekursjon og induksjon over de naturlige talleneN.

I en IT-sammenheng finnes det andre induktivt konstruerte mengder hvor tilsvarende metoder har mening.

Vi skal etterhvert se p˚a noen generelle og spesielle eksempler av interesse for IT.

Vi skal imidlertid først se p˚a rekursjon i en begrenset, men viktig, forstand.

(64)

Innledning til rekursjon og induksjon

Læreboka behandler for det meste rekursjon og induksjon over de naturlige talleneN.

I en IT-sammenheng finnes det andre induktivt konstruerte mengder hvor tilsvarende metoder har mening.

Vi skal etterhvert se p˚a noen generelle og spesielle eksempler av interesse for IT.

Vi skal imidlertid først se p˚a rekursjon i en begrenset, men viktig, forstand.

MAT1030 – Diskret matematikk 27. februar 2008 12

(65)

Innledning til rekursjon og induksjon

Læreboka behandler for det meste rekursjon og induksjon over de naturlige talleneN.

I en IT-sammenheng finnes det andre induktivt konstruerte mengder hvor tilsvarende metoder har mening.

Vi skal etterhvert se p˚a noen generelle og spesielle eksempler av interesse for IT.

Vi skal imidlertid først se p˚a rekursjon i en begrenset, men viktig, forstand.

(66)

Rekursjon

Eksempel

Vi definerer en funksjonf :N→Nved

1 f(1) = 2

2 f(n+ 1) = 2f(n) for allen.

Vi har ikke definert f ved en formel, s˚a er f veldefinert?

MAT1030 – Diskret matematikk 27. februar 2008 13

(67)

Rekursjon

Eksempel

Vi definerer en funksjonf :N→Nved

1 f(1) = 2

2 f(n+ 1) = 2f(n) for allen.

Vi har ikke definert f ved en formel, s˚a er f veldefinert?

(68)

Rekursjon

Eksempel

Vi definerer en funksjonf :N→Nved

1 f(1) = 2

2 f(n+ 1) = 2f(n) for allen.

Vi har ikke definert f ved en formel, s˚a er f veldefinert?

MAT1030 – Diskret matematikk 27. februar 2008 13

(69)

Rekursjon

Eksempel

Vi definerer en funksjonf :N→Nved

1 f(1) = 2

2 f(n+ 1) = 2f(n) for allen.

Vi har ikke definert f ved en formel, s˚a er f veldefinert?

(70)

Rekursjon

Eksempel

Vi definerer en funksjonf :N→Nved

1 f(1) = 2

2 f(n+ 1) = 2f(n) for allen.

Vi har ikke definert f ved en formel, s˚a er f veldefinert?

MAT1030 – Diskret matematikk 27. februar 2008 13

(71)

Rekursjon

Eksempel (Fortsatt)

En test kan jo være om vi er i stand til ˚a skrive et program for f! Vi kan oppfatte punktene 1. og 2. p˚a forrige side som enspesifikasjon. Vi har tidligere sett hvordan vi kan finne en pseudokode forg(z) = 2z Det betyr at vi kan bruke en instruksjon p˚a formen

z ←2y

med vissheten om at vi kan erstatte den ene linjen med en pseudokode.

Da er det lett ˚a lage en pseudokode for f:

(72)

Rekursjon

Eksempel (Fortsatt)

En test kan jo være om vi er i stand til ˚a skrive et program for f!

Vi kan oppfatte punktene 1. og 2. p˚a forrige side som enspesifikasjon. Vi har tidligere sett hvordan vi kan finne en pseudokode forg(z) = 2z Det betyr at vi kan bruke en instruksjon p˚a formen

z ←2y

med vissheten om at vi kan erstatte den ene linjen med en pseudokode.

Da er det lett ˚a lage en pseudokode for f:

MAT1030 – Diskret matematikk 27. februar 2008 14

(73)

Rekursjon

Eksempel (Fortsatt)

En test kan jo være om vi er i stand til ˚a skrive et program for f! Vi kan oppfatte punktene 1. og 2. p˚a forrige side som enspesifikasjon.

Vi har tidligere sett hvordan vi kan finne en pseudokode forg(z) = 2z Det betyr at vi kan bruke en instruksjon p˚a formen

z ←2y

med vissheten om at vi kan erstatte den ene linjen med en pseudokode.

Da er det lett ˚a lage en pseudokode for f:

(74)

Rekursjon

Eksempel (Fortsatt)

En test kan jo være om vi er i stand til ˚a skrive et program for f! Vi kan oppfatte punktene 1. og 2. p˚a forrige side som enspesifikasjon.

Vi har tidligere sett hvordan vi kan finne en pseudokode forg(z) = 2z

Det betyr at vi kan bruke en instruksjon p˚a formen z ←2y

med vissheten om at vi kan erstatte den ene linjen med en pseudokode.

Da er det lett ˚a lage en pseudokode for f:

MAT1030 – Diskret matematikk 27. februar 2008 14

(75)

Rekursjon

Eksempel (Fortsatt)

En test kan jo være om vi er i stand til ˚a skrive et program for f! Vi kan oppfatte punktene 1. og 2. p˚a forrige side som enspesifikasjon.

Vi har tidligere sett hvordan vi kan finne en pseudokode forg(z) = 2z Det betyr at vi kan bruke en instruksjon p˚a formen

z ←2y

med vissheten om at vi kan erstatte den ene linjen med en pseudokode.

Da er det lett ˚a lage en pseudokode for f:

(76)

Rekursjon

Eksempel (Fortsatt)

En test kan jo være om vi er i stand til ˚a skrive et program for f! Vi kan oppfatte punktene 1. og 2. p˚a forrige side som enspesifikasjon.

Vi har tidligere sett hvordan vi kan finne en pseudokode forg(z) = 2z Det betyr at vi kan bruke en instruksjon p˚a formen

z ←2y

med vissheten om at vi kan erstatte den ene linjen med en pseudokode.

Da er det lett ˚a lage en pseudokode for f:

MAT1030 – Diskret matematikk 27. februar 2008 14

(77)

Rekursjon

Eksempel (Fortsatt)

En test kan jo være om vi er i stand til ˚a skrive et program for f! Vi kan oppfatte punktene 1. og 2. p˚a forrige side som enspesifikasjon.

Vi har tidligere sett hvordan vi kan finne en pseudokode forg(z) = 2z Det betyr at vi kan bruke en instruksjon p˚a formen

z ←2y

med vissheten om at vi kan erstatte den ene linjen med en pseudokode.

Da er det lett ˚a lage en pseudokode for f:

(78)

Rekursjon

Eksempel (Fortsatt)

1. Input x [x∈N] 2. z ←2

3. i ←1

4. Whilei <x do

4.1 ii+ 1 4.2 z 2z

5. Output z

Vi kaller f(x) verdien p˚a 2er-t˚arnet av høyde x

.

MAT1030 – Diskret matematikk 27. februar 2008 15

(79)

Rekursjon

Eksempel (Fortsatt) 1. Input x [x∈N]

2. z ←2 3. i ←1

4. Whilei <x do

4.1 ii+ 1 4.2 z 2z

5. Output z

Vi kaller f(x) verdien p˚a 2er-t˚arnet av høyde x

.

(80)

Rekursjon

Eksempel (Fortsatt) 1. Input x [x∈N] 2. z ←2

3. i ←1

4. Whilei <x do

4.1 ii+ 1 4.2 z 2z

5. Output z

Vi kaller f(x) verdien p˚a 2er-t˚arnet av høyde x

.

MAT1030 – Diskret matematikk 27. februar 2008 15

(81)

Rekursjon

Eksempel (Fortsatt) 1. Input x [x∈N] 2. z ←2

3. i ←1

4. Whilei <x do

4.1 ii+ 1 4.2 z 2z

5. Output z

Vi kaller f(x) verdien p˚a 2er-t˚arnet av høyde x

.

(82)

Rekursjon

Eksempel (Fortsatt) 1. Input x [x∈N] 2. z ←2

3. i ←1

4. Whilei <x do

4.1 ii+ 1 4.2 z 2z 5. Output z

Vi kaller f(x) verdien p˚a 2er-t˚arnet av høyde x

.

MAT1030 – Diskret matematikk 27. februar 2008 15

(83)

Rekursjon

Eksempel (Fortsatt) 1. Input x [x∈N] 2. z ←2

3. i ←1

4. Whilei <x do 4.1 ii+ 1

4.2 z 2z 5. Output z

Vi kaller f(x) verdien p˚a 2er-t˚arnet av høyde x

.

(84)

Rekursjon

Eksempel (Fortsatt) 1. Input x [x∈N] 2. z ←2

3. i ←1

4. Whilei <x do 4.1 ii+ 1 4.2 z 2z

5. Output z

Vi kaller f(x) verdien p˚a 2er-t˚arnet av høyde x

.

MAT1030 – Diskret matematikk 27. februar 2008 15

(85)

Rekursjon

Eksempel (Fortsatt) 1. Input x [x∈N] 2. z ←2

3. i ←1

4. Whilei <x do 4.1 ii+ 1 4.2 z 2z 5. Output z

Vi kaller f(x) verdien p˚a 2er-t˚arnet av høyde x

.

(86)

Rekursjon

Eksempel (Fortsatt) 1. Input x [x∈N] 2. z ←2

3. i ←1

4. Whilei <x do 4.1 ii+ 1 4.2 z 2z 5. Output z

Vi kaller f(x) verdien p˚a 2er-t˚arnet av høyde x.

MAT1030 – Diskret matematikk 27. februar 2008 15

(87)

Rekursjon

Eksempel

V˚art neste eksempel er en funksjon som brukes mye i matematikk og i sannsynlighetsregning,

n7→n!, eller fakultetsfunksjonen.

Vi kan bruke omtrent samme formatet som i forrige eksempel:

1 1! = 1

2 (n+ 1)! =n!·(n+ 1) for allenN.

Vi kan nærmest kopiere pseudokoden fra forrige eksempel, og f˚ar følgende algoritme for beregning avn!:

(88)

Rekursjon

Eksempel

V˚art neste eksempel er en funksjon som brukes mye i matematikk og i sannsynlighetsregning,

n7→n!,

eller fakultetsfunksjonen.

Vi kan bruke omtrent samme formatet som i forrige eksempel:

1 1! = 1

2 (n+ 1)! =n!·(n+ 1) for allenN.

Vi kan nærmest kopiere pseudokoden fra forrige eksempel, og f˚ar følgende algoritme for beregning avn!:

MAT1030 – Diskret matematikk 27. februar 2008 16

(89)

Rekursjon

Eksempel

V˚art neste eksempel er en funksjon som brukes mye i matematikk og i sannsynlighetsregning,

n7→n!, ellerfakultetsfunksjonen.

Vi kan bruke omtrent samme formatet som i forrige eksempel:

1 1! = 1

2 (n+ 1)! =n!·(n+ 1) for allenN.

Vi kan nærmest kopiere pseudokoden fra forrige eksempel, og f˚ar følgende algoritme for beregning avn!:

(90)

Rekursjon

Eksempel

V˚art neste eksempel er en funksjon som brukes mye i matematikk og i sannsynlighetsregning,

n7→n!, ellerfakultetsfunksjonen.

Vi kan bruke omtrent samme formatet som i forrige eksempel:

1 1! = 1

2 (n+ 1)! =n!·(n+ 1) for allenN.

Vi kan nærmest kopiere pseudokoden fra forrige eksempel, og f˚ar følgende algoritme for beregning avn!:

MAT1030 – Diskret matematikk 27. februar 2008 16

(91)

Rekursjon

Eksempel

V˚art neste eksempel er en funksjon som brukes mye i matematikk og i sannsynlighetsregning,

n7→n!, ellerfakultetsfunksjonen.

Vi kan bruke omtrent samme formatet som i forrige eksempel:

1 1! = 1

2 (n+ 1)! =n!·(n+ 1) for allenN.

Vi kan nærmest kopiere pseudokoden fra forrige eksempel, og f˚ar følgende algoritme for beregning avn!:

(92)

Rekursjon

Eksempel

V˚art neste eksempel er en funksjon som brukes mye i matematikk og i sannsynlighetsregning,

n7→n!, ellerfakultetsfunksjonen.

Vi kan bruke omtrent samme formatet som i forrige eksempel:

1 1! = 1

2 (n+ 1)! =n!·(n+ 1) for allenN.

Vi kan nærmest kopiere pseudokoden fra forrige eksempel, og f˚ar følgende algoritme for beregning avn!:

MAT1030 – Diskret matematikk 27. februar 2008 16

(93)

Rekursjon

Eksempel

V˚art neste eksempel er en funksjon som brukes mye i matematikk og i sannsynlighetsregning,

n7→n!, ellerfakultetsfunksjonen.

Vi kan bruke omtrent samme formatet som i forrige eksempel:

1 1! = 1

2 (n+ 1)! =n!·(n+ 1) for allenN.

Vi kan nærmest kopiere pseudokoden fra forrige eksempel, og f˚ar følgende algoritme for beregning avn!:

(94)

Rekursjon

Eksempel (Fortsatt)

1. Input x [x∈N] 2. z ←1

3. i ←1

4. Whilei <x do

4.1 ii+ 1 4.2 z z·(i)

5. Output z

MAT1030 – Diskret matematikk 27. februar 2008 17

(95)

Rekursjon

Eksempel (Fortsatt) 1. Input x [x∈N]

2. z ←1 3. i ←1

4. Whilei <x do

4.1 ii+ 1 4.2 z z·(i)

5. Output z

(96)

Rekursjon

Eksempel (Fortsatt) 1. Input x [x∈N] 2. z ←1

3. i ←1

4. Whilei <x do

4.1 ii+ 1 4.2 z z·(i)

5. Output z

MAT1030 – Diskret matematikk 27. februar 2008 17

(97)

Rekursjon

Eksempel (Fortsatt) 1. Input x [x∈N] 2. z ←1

3. i ←1

4. Whilei <x do

4.1 ii+ 1 4.2 z z·(i)

5. Output z

(98)

Rekursjon

Eksempel (Fortsatt) 1. Input x [x∈N] 2. z ←1

3. i ←1

4. Whilei <x do

4.1 ii+ 1 4.2 z z·(i) 5. Output z

MAT1030 – Diskret matematikk 27. februar 2008 17

(99)

Rekursjon

Eksempel (Fortsatt) 1. Input x [x∈N] 2. z ←1

3. i ←1

4. Whilei <x do 4.1 ii+ 1

4.2 z z·(i) 5. Output z

(100)

Rekursjon

Eksempel (Fortsatt) 1. Input x [x∈N] 2. z ←1

3. i ←1

4. Whilei <x do 4.1 ii+ 1 4.2 z z·(i)

5. Output z

MAT1030 – Diskret matematikk 27. februar 2008 17

(101)

Rekursjon

Eksempel (Fortsatt) 1. Input x [x∈N] 2. z ←1

3. i ←1

4. Whilei <x do 4.1 ii+ 1 4.2 z z·(i) 5. Output z

(102)

Rekursjon

Læreboka tar utgangspunkt i tallfølger, mens vi tar utgangspunkt i funksjoner.

Det er i prinsippet ingen forskjell mellom en uendelig tallfølge og en funksjon definert p˚a N

Tallfølgen

1,2,6,24,120,720, . . .

er bare en annen m˚ate ˚a skrive fakultetsfunksjonen p˚a.

Hvorvidt man i konkrete tilfeller bruker tallfølger eller funksjoner, avhenger av hva som er pedagogisk mest forstandig for anledningen.

MAT1030 – Diskret matematikk 27. februar 2008 18

(103)

Rekursjon

Læreboka tar utgangspunkt i tallfølger, mens vi tar utgangspunkt i funksjoner.

Det er i prinsippet ingen forskjell mellom en uendelig tallfølge og en funksjon definert p˚a N

Tallfølgen

1,2,6,24,120,720, . . .

er bare en annen m˚ate ˚a skrive fakultetsfunksjonen p˚a.

Hvorvidt man i konkrete tilfeller bruker tallfølger eller funksjoner, avhenger av hva som er pedagogisk mest forstandig for anledningen.

(104)

Rekursjon

Læreboka tar utgangspunkt i tallfølger, mens vi tar utgangspunkt i funksjoner.

Det er i prinsippet ingen forskjell mellom en uendelig tallfølge og en funksjon definert p˚a N

Tallfølgen

1,2,6,24,120,720, . . .

er bare en annen m˚ate ˚a skrive fakultetsfunksjonen p˚a.

Hvorvidt man i konkrete tilfeller bruker tallfølger eller funksjoner, avhenger av hva som er pedagogisk mest forstandig for anledningen.

MAT1030 – Diskret matematikk 27. februar 2008 18

(105)

Rekursjon

Læreboka tar utgangspunkt i tallfølger, mens vi tar utgangspunkt i funksjoner.

Det er i prinsippet ingen forskjell mellom en uendelig tallfølge og en funksjon definert p˚a N

Tallfølgen

1,2,6,24,120,720, . . .

er bare en annen m˚ate ˚a skrive fakultetsfunksjonen p˚a.

Hvorvidt man i konkrete tilfeller bruker tallfølger eller funksjoner, avhenger av hva som er pedagogisk mest forstandig for anledningen.

(106)

Rekursjon

Kan vi gi en bedre begrunnelse for at de to funksjonene vi har sett p˚a er veldefinerte enn at vi kan finne pseudokoder for dem?

Svaret er selvfølgelig JA.

Vi kan n˚a alle naturlige tall ved ˚a

1 Starte med 1

2 Legge til 1 s˚a mange ganger som nødvendig.

Hvis vi da definerer en funksjon f ved ˚a bestemme

1 hvaf(1) er

2 hvordanf(n+ 1) avhenger avf(n) ogn

har vi bestemt f(n) for allen.

Vi kan oppfatte en konkretisering av punktene 1 og 2 over som en spesifikasjon.

Vi skal se p˚a et eksempel i detalj:

MAT1030 – Diskret matematikk 27. februar 2008 19

(107)

Rekursjon

Kan vi gi en bedre begrunnelse for at de to funksjonene vi har sett p˚a er veldefinerte enn at vi kan finne pseudokoder for dem?

Svaret er selvfølgelig JA.

Vi kan n˚a alle naturlige tall ved ˚a

1 Starte med 1

2 Legge til 1 s˚a mange ganger som nødvendig.

Hvis vi da definerer en funksjon f ved ˚a bestemme

1 hvaf(1) er

2 hvordanf(n+ 1) avhenger avf(n) ogn

har vi bestemt f(n) for allen.

Vi kan oppfatte en konkretisering av punktene 1 og 2 over som en spesifikasjon.

Vi skal se p˚a et eksempel i detalj:

(108)

Rekursjon

Kan vi gi en bedre begrunnelse for at de to funksjonene vi har sett p˚a er veldefinerte enn at vi kan finne pseudokoder for dem?

Svaret er selvfølgelig JA.

Vi kan n˚a alle naturlige tall ved ˚a

1 Starte med 1

2 Legge til 1 s˚a mange ganger som nødvendig. Hvis vi da definerer en funksjon f ved ˚a bestemme

1 hvaf(1) er

2 hvordanf(n+ 1) avhenger avf(n) ogn

har vi bestemt f(n) for allen.

Vi kan oppfatte en konkretisering av punktene 1 og 2 over som en spesifikasjon.

Vi skal se p˚a et eksempel i detalj:

MAT1030 – Diskret matematikk 27. februar 2008 19

(109)

Rekursjon

Kan vi gi en bedre begrunnelse for at de to funksjonene vi har sett p˚a er veldefinerte enn at vi kan finne pseudokoder for dem?

Svaret er selvfølgelig JA.

Vi kan n˚a alle naturlige tall ved ˚a

1 Starte med 1

2 Legge til 1 s˚a mange ganger som nødvendig. Hvis vi da definerer en funksjon f ved ˚a bestemme

1 hvaf(1) er

2 hvordanf(n+ 1) avhenger avf(n) ogn

har vi bestemt f(n) for allen.

Vi kan oppfatte en konkretisering av punktene 1 og 2 over som en spesifikasjon.

Vi skal se p˚a et eksempel i detalj:

(110)

Rekursjon

Kan vi gi en bedre begrunnelse for at de to funksjonene vi har sett p˚a er veldefinerte enn at vi kan finne pseudokoder for dem?

Svaret er selvfølgelig JA.

Vi kan n˚a alle naturlige tall ved ˚a

1 Starte med 1

2 Legge til 1 s˚a mange ganger som nødvendig.

Hvis vi da definerer en funksjon f ved ˚a bestemme

1 hvaf(1) er

2 hvordanf(n+ 1) avhenger avf(n) ogn

har vi bestemt f(n) for allen.

Vi kan oppfatte en konkretisering av punktene 1 og 2 over som en spesifikasjon.

Vi skal se p˚a et eksempel i detalj:

MAT1030 – Diskret matematikk 27. februar 2008 19

Referanser

RELATERTE DOKUMENTER

Da gir det ingen mening ˚ a snakke om f ◦ g fordi definisjonsomr˚ adet til f er mengden av binære representasjoner av naturlige tall og verdiomr˚ adet til g er en mengde av

I verste fall kan vi skrive programmer for funksjoner hvor det er umulig ˚ a bestemme hva definisjonsomr˚ adet er.. Innenfor IT er det derfor naturlig ogs˚ a ˚ a studere

Alle programmer beskriver egentlig funksjoner, selv om noen argumenter (som maskintid, maskinarkitektur o.a.) ikke er synlig.. Det er derfor av interesse ˚ a studere de funksjonene

V˚ are eksempler vil ofte g˚ a ut p˚ a ˚ a vise at en formel for det generelle leddet i en følge som vi har definert ved rekursjon er riktig.. I flere eksempler vil den naturlige

Hvis vi skal analysere hvor tidkrevende en algoritme kan være, m˚ a vi vite hvor mange regneskritt som kreves, og hvor lang tid hvert enkelt skritt tar. Induksjonsbevis kan inng˚ a

Kan vi finne en formel for hvor mange felter vi maksimalt kan dele planet i ved hjelp av n

Vi skal gi en induktiv definisjon av mengden av utsagnslogiske formler hvor vi bruker p, q og r som utsagnsvariable, bindeordene ¬ ∧ og ∨, og hvor vi har formalisert bruken

Vi bruker bokstaver i kursiv som variable over bokstavene p˚ a tastaturet, og vi kan bruke andre bokstaver i kursiv som variable for ord, hvor:.. MAT1030 – Diskret