Текст подпрограммы и версий ( Фортран ) pa10i.zip |
Тексты тестовых примеров ( Фортран ) tpa10i.zip |
Текст подпрограммы и версий ( Си ) pa10i_c.zip |
Тексты тестовых примеров ( Си ) tpa10i_c.zip |
Текст подпрограммы и версий ( Паскаль ) pa10i_p.zip |
Тексты тестовых примеров ( Паскаль ) tpa10i_p.zip |
Генерация сочетаний 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)