Текст подпрограммы и версий ( Фортран )
pa10i.zip 
Тексты тестовых примеров ( Фортран )
tpa10i.zip 
Текст подпрограммы и версий ( Си )
pa10i_c.zip 
Тексты тестовых примеров ( Си )
tpa10i_c.zip 
Текст подпрограммы и версий ( Паскаль )
pa10i_p.zip 
Тексты тестовых примеров ( Паскаль )
tpa10i_p.zip 

Подпрограмма:  PA10I

Назначение

Генерация сочетаний Cnk   из  n целых чисел по  k.

Математическое описание

Пусть заданы целые числа 0, 1, 2, ..., n - 1. Подпрограмма PA10I формирует следующее по порядку сочетание из этих  n целых чисел по  k, 1 ≤ k ≤ n, если задано предшествующее сочетание. Новое сочетание помещается в одномерном целом массиве J длины  k таким образом, что его компоненты J (1), J (2), ..., J (k) содержат целые числа в пределах от 0 до  n - 1 в виде монотонной строго возрастающей последовательности.

На входе в подпрограмму предшествующее сочетание задается в массиве J также в виде монотонной строго возрастающей последовательности. Если массив J задать нулевым, то в качестве первого сочетания будет получено n - k, ..., n - 1. Это же начальное сочетание получится и после выходного сочетания 0, 1, ...., n - k, которое всегда является последним в циклическом процессе генерации всех возможных сочетаний из  n по  k.

Использование

    SUBROUTINE  PA10I (N, K, J) 

Параметры

     N, K - заданные значения  n и  k соответственно, n ≥ 1, 1 ≤ k ≤ n (тип: целый);
J - целый одномерный массив длины K, содержащий на входе предшествующее сочетание, а на выходе - следующее по порядку сочетание.

Версии: нет

Вызываемые подпрограммы: нет

Замечания по использованию: нет

Пример использования

       DIMENSION  J(3) 
       DATA  J /0, 0, 0/ 
       N = 5 
       K = 3 
       DO 10 I = 1, 10 
       CALL  PA10I (N, K, J) 
 10  CONTINUE 

Результаты:

       (2, 3, 4);  (1, 3, 4);  (0, 3, 4);  (1, 2, 4); 
       (0, 2, 4);  (0, 1, 4);  (1, 2, 3);  (0, 2, 3); 
       (0, 1, 3);  (0, 1, 2)