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