Combinațiile sunt generate în ordine lexicografică. Algoritmul funcționează cu indicii ordinali ai elementelor setului.
Luați în considerare algoritmul pentru un exemplu.
Pentru simplitatea expunerii, să luăm în considerare un set de cinci elemente, indicii din care încep cu 1, și anume, 1 2 3 4 5.
Este necesară generarea tuturor combinațiilor de mărime m = 3.
În primul rând, se inițiază prima combinație a mărimii date: m - indicii în ordine crescătoare
1 2 3
Apoi, ultimul element este verificat, i = 3. Dacă valoarea lui este mai mică decât n - m + i, acesta este incrementat cu 1.
1 2 4
Ultimul element este verificat din nou și din nou este incrementat.
1 2 5
Acum, valoarea elementului este egală cu maximul posibil: n - m + i = 5 - 3 + 3 = 5, se verifică elementul anterior cu i = 2.
Dacă valoarea sa este mai mică decât n - m + i, este incrementată cu 1, iar pentru toate elementele care o urmează, valoarea este egală cu valoarea elementului anterior plus 1.
1 (2 + 1) 3 (3 + 1) 4 = 1 3 4
Apoi, din nou, există un test pentru i = 3.
1 3 5
Apoi, verificați pentru i = 2.
1 4 5
Apoi vine rândul i = 1.
(1 + 1) 2 (2 + 1) 3 (3 + 1) 4 = 2 3 4
Și mai departe,
2 3 5
2 4 5
3 4 5 - ultima combinație, deoarece toate elementele sale sunt egale cu n - m + i.
Calcule similare:
Conectați-vă cu Facebook Conectați-vă cu Vk Conectați-vă cu Twitter Conectați-vă cu Vkontakte