Indukce a rekurze
- Jedná se o dva provázané jevy
- Použití: důkazy, algoritmy, definice
- indukce … od menšího k většímu (definujeme první krok)
- rekurze … od velkého k malému (limitní ukončující podmínka)
Faktoriál
- Rekurzivní výpočet
def fact_1(n):
if n == 1:
return 1
else:
return n * fact_1(n-1)
- Induktivní výpočet
def fact_2(n):
res = 1
while (n > 1):
res *= n
n--
return res
- Popis faktoriálu matematicky
- Můžeme definovat i číselné množiny
- např. množina všech lichých čísel - pro , pokud pak
- Taktéž i formule výrokové logiky (induktivně definovaná struktura)
- každý výrokový symbol je formule (atomická)
- jsou-li a formule, pak jsou i výrazy formule (složené)
- Sierpisnkého trojúhelníky
Matematická indukce
- Umožňuje dokazovat tvrzení jako “pro každé přirozené číslo platí…”
Princip indukce
Pro každé je dáno tvrzení , předpokládejme že platí
a) - indukční předpoklad b) pro každé : z plyne - indukční krok
Důkaz principu indukce
- Provedeme ho sporem. Předpokládejme, že princip indukce neplatí, tj. existuje tvrzení splňující:
- pro každé z plyne
- Ale pro nějaké tvrzení neplatí.
- Označme
- je prázdná (neboť ). má tedy nejmenší prvek a ten je různý od (protože platí). Pak tedy , tedy platí. Z indukčního kroku plyne, že platí i , tedy , což je spor s .
Varianty důkazu matematickou indukcí
- Indukce nemusí začínat 1
Definice matematickou indukcí
- Třeba pro faktoriál (viz na začátku tohoto souboru)
Věta 8.9.
Věta: Nechť je dána množina , prvek a funkce . Pak existuje právě jedna funkce , pro kterou platí:
- pro každé :
Strukturální indukce
- Jde o zobecnění matematické indukce
- Místo množiny pracujeme s množinou
- Množina je množina řetězců obvykle utvořena podle induktivních pravidel (např. výrokové formule)
- Např. důkaz pro stejných počet levých i pravých závorek ve výrokové formuli
Definice strukturální indukcí
- Definujeme pro bazické/atomické prvky z (předpoklad) a složené prvky (krok)
- Používá se pro: aritmetické výrazy, definici seznamů, definici stromů