Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function placements(k, n)
- % Функция печатает на экран все размещения длины k из чисел 1..n
- m = ones(1, k); % первое размещение
- disp(m);
- last = false; % Переменная, отвечающая за выход из цикла
- while ~last
- [m, last] = next(m, k, n); % Получение следующего размещения
- disp(m);
- end
- end
- function [m, last] = next(m, k, n)
- % Функция получает следующее размещение x длины k из элементов 1..n
- % Поиск (с конца) элемента массива x , отличного от n
- last = true;
- for t = k:(-1):1
- if ( m(t) < n )
- last = false;
- break;
- end
- end
- % Если не найдено ни одного отличного от n элемента, то данное размещение является последним
- if (last) return; end
- m(t) = m(t) + 1;
- for i = t+1:k
- m(i) = 1;
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement