Алгоритм получения N! перестановок натуральных чисел из отрезка 1, .., N.
Дано:
N - натуральное число (1, 2, 3, …).
Надо:
Получить N! (факториал) перестановок натуральных чисел:
1, .., N (без повторов чисел).
Факториал числа N (N!) - это произведение натуральных чисел: 1, … N.
Пример:
N = 3.
Тогда число перестановок N! = 1*2*3 = 6.
Перестановки для N=3:
123
132
312
321
231
213
Для получения перестановок N! натуральных чисел
используется алгоритм польского математика
Гуго Штейнгауза (Hugo Dyonizy Steinhaus),
придуманный математиком в 1950-х годах.
В 80-90-х гг. читал о нём в книгах популяризатора математики Мартина Гарднера.
Для получения следующей перестановки из предыдущей
достаточно поменять местами два соседних числа.
Нужно только определить, каких два числа поменять.
Дана статистика расчетов в реализации
консольного приложения
на языке Microsoft C# .NET 7.0.
И есть желание сделать реализацию алгоритма на других языках: Java, C++, возможно, Python, Go для сравнения производительности.