76
правок
Изменения
→Специализация алгоритма для генерации следующего сочетания
* Пойдём справа налево. Будем искать номер элемента, который отличается от предыдущего на 2.
* Увеличим найденный элемент на 1, и допишем в конец минимально возможный хвост, если такого элемента нет – на вход было дано последнее сочетание.
'''function''' nextChoose(var a:array[1..k+1] of integer): array[1..k] of integer; // n,k - параметры сочетания. '''var''' i,j : '''integer;''' b:array[1..k+1] of '''integer;'''
'''begin'''
'''for''' i := 1 '''to''' k '''do''' b[i]:=a[i]; b[k + 1] := n + 1;
i := n;
'''while''' (i > 0) '''and''' ((ab[i + 1] - ab[i]) < 2) '''do'''
i := i - 1;
'''if''' i > 0 '''then'''
'''begin'''
'''for''' j := i + 1 '''to''' k '''do'''
return(a[1..k]);
'''end'''