V tomto článku si jemně nastíníme, co to kombinační číslo je, a jak si napsat jednoduchou metodu v jazyce Java k jeho výpočtu. Naprogramujeme si statickou metodu k výpočtu těchto čísel a budeme k ní také potřebovat metodu pro výpočet faktoriálu.
Kombinační číslo je funkce, která udává počet způsobů, jak vybrat k-prvkovou podmnožinu z n-prvkové množiny. Zde je již vzorec výpočtu zapůjčený z wikipedie.
![]()
Pokud jsou n a k shodné, nebo pokud je k 0, tak je výsledek vždy 1.

Zde je vypočítaný příklad, kombinačního čísla 7 nad 3.

Nejprve budeme muset vytvořit metodu faktorial(), kterou budeme využívat k výpočtu kombinačních čísel.
public static long faktorial(int cislo) {
int vysledek = 1;
for(int i = cislo;i > 0;i--) {
vysledek *= i;
}
return vysledek;
}
O funkcionalitě této metody a dalších způsobech, jak implementovat faktoriál jsem již napsal tento článek.
Implementace do Javy:
public static long kombinace(int n, int k) {
long vysledek;
if(n < 0 || k < 0 || n < k)
return -1;
if(k == 0)
return 1;
vysledek = faktorial(n) / (faktorial(k) * faktorial(n-k));
return vysledek;
}
Jak tato snadná metoda funguje je podle mého názoru zbytečné vysvětlovat.
Takto by již mohl vypadat celý zdrojový kód:
public class Main {
public static long faktorial(int cislo) {
long vysledek = 1;
for(int i = cislo;i > 0;i--) {
vysledek *= i;
}
return vysledek;
}
public static long kombinace(int n, int k) {
long vysledek;
if(n < 0 || k < 0 || n < k)
return -1;
if(k == 0)
return 1;
vysledek = faktorial(n) / (faktorial(k) * faktorial(n-k));
return vysledek;
}
public static void main(String[] args) {
System.out.println(kombinace(7, 2));
}
}
Výpis tohoto programu by byl - 21
