From 73221a8230b70ad2546c87735672f506dc49135b Mon Sep 17 00:00:00 2001 From: Jiri Kalvoda <jirikalvoda@kam.mff.cuni.cz> Date: Sun, 20 Oct 2024 14:55:33 +0200 Subject: [PATCH] =?UTF-8?q?KG1:=20T=C5=99et=C3=AD=20cvi=C4=8Den=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jk_web/teaching_24_kg1/3.md | 64 ++++++++++++++++++++++++++++++ jk_web/teaching_24_kg1/__init__.py | 3 +- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 jk_web/teaching_24_kg1/3.md diff --git a/jk_web/teaching_24_kg1/3.md b/jk_web/teaching_24_kg1/3.md new file mode 100644 index 0000000..3798b11 --- /dev/null +++ b/jk_web/teaching_24_kg1/3.md @@ -0,0 +1,64 @@ +--- +title: "KG1 Jiří Kalvoda: Cvičení 3 (Vytvoř. fce)" +lang: "cs" +--- + +[#jk_web.teaching_24_kg1.cvic_formatitko]{type=module} + +\def\sectioneject{} + +[]{c=head} + +Vytvořující funkce pro posloupnost $(a_0, a_1, a_2, \dots)$ je mocninná řada $a(x) = a_0 + a_1x + a_2x^2 + a_3x^3 + \cdots$. + +Postup výroby VF z rekurzivně zadané posloupnosti. + +- začneme s rovností $a_n x^n = (\hbox{rekurzivní výraz}) x^n$. +- sečteme pro všechna přípustná $n$: $\sum_{n \ge n_0} a_n x^n = \sum_{n \ge n_0} (\hbox{rek. v.}) x^n$. +- upravujeme a všechny nekonečné sumy nahradíme za $f(x)$. +- vyřešíme rovnici, kde neznámá je $f(x)$. + +Zobecněné kombinační číslo ($r\in \R, k\in\N$): ${r \choose k} = {n(n-1)\cdots(n-k+1) \over k!}$ +Zobecněná binomická věta: $(1+x)^r = \sum_{k\ge 0} {r \choose k} x^k$. +Důsledek: ${1\over (1-x)^m} = \sum_n {m+n-1 \choose m-1} x^n$. + +Vytvořujíci funkce posloupností +================== + +Najděte vytvořující funkci následujících posloupností: + +a) $1, -1, 1, -1, \dots , (-1)^n , \dots$ +b) $1,2,3,4,\dots, n+1, \dots$ +c) ${p \choose p}, {p+1 \choose p}, \dots, {p+n \choose p} \dots$ +d) $1, 1, 2, 2, 4, 4, 8, 8, \dots$ + +Kombinatoricky definované VF +========================= + +Najděte vzorce v uzavřeném tvaru (tedy bez nekonečných sum) pro vytvořující funkce následujících posloupností. + +a) Posloupnost $(a_n)_{n=0}^\infty$, kde $a_n$ označuje počet způsobů, jak lze číslo $n$ zapsat jako součet tří lichých přirozených + čísel (na pořadí sčítanců záleží). Například $a_7 = 6$, neboť číslo 7 lze zapsat těmito součty: $1 + 1 + 5, 1 + 5 + 1, + 5 + 1 + 1, 1 + 3 + 3, 3 + 1 + 3, 3 + 3 + 1$. +b) Posloupnost $(b_n)_{n=0}^\infty$, kde $b_n$ označuje počet způsobů, jak lze číslo $n$ zapsat jako součet libovolného počtu + lichých přirozených čísel (na pořadí sčítanců opět záleží). Například $b_4 = 3$, nebot’ číslo 4 lze zapsat těmito + součty: $1 + 3, 3 + 1, 1 + 1 + 1 + 1$. +c) Posloupnost $(c_n)_{n=0}^\infty$ , kde $c_n$ označuje počet způsobů, jak lze číslo $n$ zapsat jako součet jedniček a dvojek (na + pořadí sčítanců záleží). Například $c_4 = 5$, neboť číslo 4 lze zapsat těmito součty: $1 + 1 + 1 + 1, 1 + 1 + 2, + 1 + 2 + 1, 2 + 1 + 1, 2 + 2$. + +Dokazování rovností +=================== + +Pro posloupnosti $b_n$ a $c_n$ z předchozího příkladu platí, že pro každé $n \ge 0$ je $c_n$ rovno $b_{n+1}$ . + +a) Dokažte to pomocí vytvořujících funkcí. +b) Dokažte to kombinatorickou úvahou. + +Rekurence +========= +Najděte vzorce v uzavřeném tvaru (tedy bez nekonečných sum) pro vytvořující funkce následujících posloupností. + +$$a_n = \left\{ \matrix{1& \hbox{pro $n=0$}\cr 3a_{n-1}-1 & \hbox{pro $n\ge 1$}} \right.$$ + +$$b_n = \left\{ \matrix{1/2& \hbox{pro $n=0$} \cr 1-\sum_{0\le k \le n-1} b_k & \hbox{pro $n\ge 1$}} \right.$$ diff --git a/jk_web/teaching_24_kg1/__init__.py b/jk_web/teaching_24_kg1/__init__.py index 2bf273d..348035c 100644 --- a/jk_web/teaching_24_kg1/__init__.py +++ b/jk_web/teaching_24_kg1/__init__.py @@ -61,7 +61,8 @@ with web.Module("teaching_24_kg1") as module: b.line.th("Příklady") with b.tbody: b(lesson(1, "1. 10.", "Kombinatorické počítání.")) - b(lesson(2, "8. 10.", b._bucket("Odhady faktoriálů a kombinačních čísel, vytvořující funkce poprvé.", b._br(), "Předvedeny příklady 1abc a 2abefgh."))) + b(lesson(2, "8. 10.", b._bucket("Odhady faktoriálů a kombinačních čísel, vytvořující funkce ponulté.", b._br(), "Předvedeny příklady 1abc a 2abefgh."))) + b(lesson(3, "15. 10.", b._bucket("Vytvořující funkce poprvé."))) return base_page(b.root) -- GitLab