Binomial coefficient

This commit is contained in:
Antti H S Laaksonen 2017-01-13 18:44:18 +02:00
parent 29909293bc
commit 70bc9cdc4d
1 changed files with 76 additions and 73 deletions

View File

@ -1,18 +1,18 @@
\chapter{Combinatorics} \chapter{Combinatorics}
\index{kombinatoriikka@kombinatoriikka} \index{combinatorics}
\key{Kombinatoriikka} tarkoittaa yhdistelmien määrän laskemista. \key{Combinatorics} studies methods for counting
Yleensä tavoitteena on toteuttaa laskenta combinations of objects.
tehokkaasti niin, että jokaista yhdistelmää Usually, the goal is to find a way to
ei tarvitse muodostaa erikseen. count the combinations efficiently
without generating each combination separately.
Tarkastellaan esimerkkinä tehtävää, As an example, let's consider a problem where
jossa laskettavana on, our task is to calculate the number of representations
monellako tavalla luvun $n$ voi esittää positiivisten for an integer $n$ as a sum of positive integers.
kokonaislukujen summana. For example, there are 8 representations
Esimerkiksi luvun 4 voi esittää 8 tavalla for the number $4$:
seuraavasti:
\begin{multicols}{2} \begin{multicols}{2}
\begin{itemize} \begin{itemize}
\item $1+1+1+1$ \item $1+1+1+1$
@ -26,29 +26,28 @@ seuraavasti:
\end{itemize} \end{itemize}
\end{multicols} \end{multicols}
Kombinatorisen tehtävän ratkaisun voi usein A combinatorial problem can often be solved
laskea rekursiivisen funktion avulla. using a recursive function.
Tässä tapauksessa voimme määritellä funktion $f(n)$, In this case, we can define a function $f(n)$
joka laskee luvun $n$ esitystapojen määrän. that counts the number of representations for $n$.
Esimerkiksi $f(4)=8$ yllä olevan esimerkin mukaisesti. For example, $f(4)=8$ according to the above example.
Funktion voi laskea rekursiivisesti seuraavasti: The function can be recursively calculated as follows:
\begin{equation*} \begin{equation*}
f(n) = \begin{cases} f(n) = \begin{cases}
1 & n = 1\\ 1 & n = 1\\
f(1)+f(2)+\ldots+f(n-1)+1 & n > 1\\ f(1)+f(2)+\ldots+f(n-1)+1 & n > 1\\
\end{cases} \end{cases}
\end{equation*} \end{equation*}
Pohjatapauksena on $f(1)=1$, The base case is $f(1)=1$,
koska luvun 1 voi esittää vain yhdellä tavalla. because there is only one way to represent the number 1.
Rekursiivinen tapaus käy läpi Otherwise, we go through all possibilities for
kaikki vaihtoehdot, the last number in the sum.
mikä on summan viimeinen luku. For example, in when $n=4$, the sum can end
Esimerkiksi tapauksessa $n=4$ summa voi päättyä with $+1$, $+2$ or $+3$.
$+1$, $+2$ tai $+3$. In addition, we also count the representation
Tämän lisäksi lasketaan mukaan esitystapa, that only contains $n$.
jossa on pelkkä luku $n$.
Funktion ensimmäiset arvot ovat: The first values for the function are:
\[ \[
\begin{array}{lcl} \begin{array}{lcl}
f(1) & = & 1 \\ f(1) & = & 1 \\
@ -58,83 +57,86 @@ f(4) & = & 8 \\
f(5) & = & 16 \\ f(5) & = & 16 \\
\end{array} \end{array}
\] \]
Osoittautuu, että funktiolle on myös suljettu muoto It turns out that the function also has a closed-form formula
\[ \[
f(n)=2^{n-1}, f(n)=2^{n-1},
\] \]
mikä johtuu siitä, että summassa on $n-1$ mahdollista which is based on the fact that there are $n-1$
kohtaa +-merkille ja niistä valitaan mikä tahansa osajoukko. possible positions for +-signs in the sum,
and we can choose any subset of them.
\section{Binomikerroin} \section{Binomial coefficient}
\index{binomikerroin@binomikerroin} \index{binomial coefficient}
\key{Binomikerroin} ${n \choose k}$ ilmaisee, A \key{binomial coefficient} ${n \choose k}$
monellako tavalla $n$ alkion joukosta is the number of ways we can choose a subset
voidaan muodostaa $k$ alkion osajoukko. of $k$ elements from a set of $n$ elements.
Esimerkiksi ${5 \choose 3}=10$, For example, ${5 \choose 3}=10$,
koska joukosta $\{1,2,3,4,5\}$ because the set $\{1,2,3,4,5\}$
voidaan valita $10$ tavalla $3$ alkiota: has 10 subsets of 3 elements:
\[ \{1,2,3\}, \{1,2,4\}, \{1,2,5\}, \{1,3,4\}, \{1,3,5\}, \[ \{1,2,3\}, \{1,2,4\}, \{1,2,5\}, \{1,3,4\}, \{1,3,5\},
\{1,4,5\}, \{2,3,4\}, \{2,3,5\}, \{2,4,5\}, \{3,4,5\} \] \{1,4,5\}, \{2,3,4\}, \{2,3,5\}, \{2,4,5\}, \{3,4,5\} \]
\subsubsection{Laskutapa 1} \subsubsection{Formula 1}
Binomikertoimen voi laskea rekursiivisesti seuraavasti: Binomial coefficients can be
recursively calculated as follows:
\[ \[
{n \choose k} = {n-1 \choose k-1} + {n-1 \choose k} {n \choose k} = {n-1 \choose k-1} + {n-1 \choose k}
\] \]
Ideana rekursiossa on tarkastella tiettyä The idea is to consider a fixed
joukon alkiota $x$. element $x$ in the set.
Jos alkio $x$ valitaan osajoukkoon, If $x$ is included in the subset,
täytyy vielä valita $n-1$ alkiosta $k-1$ alkiota. the remaining task is to choose $k-1$
Jos taas alkiota $x$ ei valita osajoukkoon, elements from $n-1$ elements,
täytyy vielä valita $n-1$ alkiosta $k$ alkiota. and otherwise
the remaining task is to choose $k$ elements from $n-1$ elements.
Rekursion pohjatapaukset ovat seuraavat:
The base cases for the recursion are as follows:
\[ \[
{n \choose 0} = {n \choose n} = 1 {n \choose 0} = {n \choose n} = 1
\] \]
Tämä johtuu siitä, että on aina yksi tapa The reason for this is that there is always
muodostaa tyhjä osajoukko, one way to construct an empty subset,
samoin kuin valita kaikki alkiot osajoukkoon. or a subset that contains all the elements.
\subsubsection{Laskutapa 2} \subsubsection{Formula 2}
Toinen tapa laskea binomikerroin on seuraava: Another way to calculate binomial coefficients is as follows:
\[ \[
{n \choose k} = \frac{n!}{k!(n-k)!}. {n \choose k} = \frac{n!}{k!(n-k)!}.
\] \]
Kaavassa $n!$ on $n$ alkion permutaatioiden määrä. There are $n!$ permutations for $n$ elements.
Ideana on käydä läpi kaikki permutaatiot We go through all permutations and in each case
ja valita kussakin tapauksessa select the first $k$ elements of the permutation
permutaation $k$ ensimmäistä alkiota osajoukkoon. to the subset.
Koska ei ole merkitystä, Since the order of the elements in the subset
missä järjestyksessä osajoukon alkiot and outside the subset doesn't matter,
ja ulkopuoliset alkiot ovat, the result is divided by $k!$ and $(n-k)!$
tulos jaetaan luvuilla $k!$ ja $(n-k)!$.
\subsubsection{Ominaisuuksia} \subsubsection{Properties}
Binomikertoimelle pätee For binomial coefficients,
\[ \[
{n \choose k} = {n \choose n-k}, {n \choose k} = {n \choose n-k},
\] \]
koska $k$ alkion valinta osajoukkoon because we can either select $k$
tarkoittaa samaa kuin että valitaan elements to the subset,
$n-k$ alkiota osajoukon ulkopuolelle. or select $n-k$ elements that
will be outside the subset.
Binomikerrointen summa on The sum of binomial coefficients is
\[ \[
{n \choose 0}+{n \choose 1}+{n \choose 2}+\ldots+{n \choose n}=2^n. {n \choose 0}+{n \choose 1}+{n \choose 2}+\ldots+{n \choose n}=2^n.
\] \]
Nimi ''binomikerroin'' tulee siitä, että The reason for the name ''binomial coefficient''
is that
\[ (a+b)^n = \[ (a+b)^n =
{n \choose 0} a^n b^0 + {n \choose 0} a^n b^0 +
@ -143,12 +145,13 @@ Nimi ''binomikerroin'' tulee siitä, että
{n \choose n-1} a^1 b^{n-1} + {n \choose n-1} a^1 b^{n-1} +
{n \choose n} a^0 b^n. \] {n \choose n} a^0 b^n. \]
\index{Pascalin kolmio} \index{Pascal's triangle}
Binomikertoimet esiintyvät myös \key{Pascalin Binomial coefficients also appear in
kolmiossa}, jonka reunoilla on lukua 1 \key{Pascal's triangle}
ja jokainen luku saadaan whose border consists of 1's,
kahden yllä olevan luvun summana: and each value is the sum of two
above values:
\begin{center} \begin{center}
\begin{tikzpicture}{0.9} \begin{tikzpicture}{0.9}
\node at (0,0) {1}; \node at (0,0) {1};