Mějme prvků. Pak nazveme každou uspořádanou k-tici (
), sestavenou z těchto prvků tak, aby se žádný z nich neopakoval, variací. Speciálním případem variace pro
je permutace.
Počet všech k-členných variací z n prvků vypočteme jako:
Za předpokladu, že umožníme opakovaný výskyt jednotlivých prvků, tak hovoříme o variaci s opakováním. Počet všech variací s opakováním platí vzorec:
Příklad
Vypište všechny 2 členné variace prvků .
Řešení
Příklad
Vypište všechny 2 členné variace s opakováním prvků .
Řešení
Příklad
Mějme organizaci, která má 20 členů a volí své vedení. Všichni členové kandidují na pozice předsedy, prvního místopředsedy a pokladníka. Každý člen může zastávat maximálně jednu funkci. Kolika různými způsoby může dopadnout volba?
Řešení
Z 20 prvků musíme vybrat tři různé. Zároveň záleží na pořadí jednotlivých prvků, jelikož jsou jednotlivé pozice, na než jsou členové voleni, odlišné. Počítáme proto počet variací (bez opakování) 3 prvků z 20.
Vedení organizace může být zvoleno 6840 způsoby.
Příklad
Kolika různými způsoby lze provést hod třemi hracími kostkami?
Řešení
Na každé z kostek může padnou hodnota 1 až 6, počítáme proto variaci 3 prvků ze 6 s opakováním.
Kostky lze hodit 216 způsoby.
Kód
01.
/** Autor: Vaclav Kejr */
02.
public
long
Variace(
int
n,
int
k)
03.
{
04.
try
05.
{
06.
long
pocetVariaci = 1;
07.
if
(n <= 0 && k <= 0)
08.
{
09.
throw
new
ArgumentException(
"Argumenty n, k nesmí být menší nebo rovny 0 !"
, n.ToString());
10.
}
11.
else
if
(n > 0 && k > 0 && n >= k)
12.
{
13.
for
(
int
x = 0; x < k; x++)
14.
{
15.
pocetVariaci *= n - x;
16.
}
17.
}
18.
else
if
(n < 0 && k > 0)
19.
{
20.
throw
new
ArgumentException(
"Argument n < 0 a k > 0 !"
, n.ToString());
21.
}
22.
else
if
(n > 0 && k < 0)
23.
{
24.
throw
new
ArgumentException(
"Argument n > 0 a k < 0 !"
, n.ToString());
25.
}
26.
else
if
(n == 0 && k > 0)
27.
{
28.
throw
new
ArgumentException(
"Argument n = 0 a k > 0 !"
, n.ToString());
29.
}
30.
else
if
(n > 0 && k == 0)
31.
{
32.
throw
new
ArgumentException(
"Argument n > 0 a k = 0 !"
, n.ToString());
33.
}
34.
return
pocetVariaci;
35.
}
36.
catch
(SystemException ex)
37.
{
38.
Console.WriteLine(ex.ToString());
39.
return
-1;
40.
}
41.
}
Literatura
- POLÁK, Josef. Přehled středoškolské matematiky. 8. vydání. Praha 4 : Prometheus, 2005. 608 s.