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
         /** Autor: Vaclav Kejr */
        public long Variace(int n, int k)
        {
            try
            {
                long pocetVariaci = 1;
                if (n <= 0 && k <= 0)
                {
                    throw new ArgumentException("Argumenty n, k nesmí být menší nebo rovny 0 !", n.ToString());
                }
                else if (n > 0 && k > 0 && n >= k)
                {
                    for (int x = 0; x < k; x++)
                    {
                        pocetVariaci *= n - x;
                    }
                }
                else if (n < 0 && k > 0)
                {
                    throw new ArgumentException("Argument n < 0 a k > 0 !", n.ToString());
                }
                else if (n > 0 && k < 0)
                {
                    throw new ArgumentException("Argument n > 0 a k < 0 !", n.ToString());
                }
                else if (n == 0 && k > 0)
                {
                    throw new ArgumentException("Argument n = 0 a k > 0 !", n.ToString());
                }
                else if (n > 0 && k == 0)
                {
                    throw new ArgumentException("Argument n > 0 a k = 0 !", n.ToString());
                }
                return pocetVariaci;
            }
            catch (SystemException ex)
            {
                Console.WriteLine(ex.ToString());
                return -1;
            }
        }
         
Literatura
- POLÁK, Josef. Přehled středoškolské matematiky. 8. vydání. Praha 4 : Prometheus, 2005. 608 s.