Вдохновленный Взятые из вопроса на переполнение стека .
Соревнование
Получив целое число n>1
, выведите все массивы, которые можно получить, поменяв местами ровно две записи в массиве [1, 2, ..., n]
.
Массивы могут быть изготовлены в любом порядке.
Вы можете последовательно использовать [0, 1, ..., n-1]
(на основе 0) вместо [1, 2, ..., n]
(на основе 1).
Дополнительные правила
Ввод и вывод являются гибкими, как обычно .
Программы или функции разрешены на любом языке программирования . Стандартные лазейки запрещены.
Самый короткий код в байтах побеждает.
Контрольные примеры
Ввод 2
дает вывод (предполагается 1 на основе)
2 1
Ввод 3
дает вывод (обратите внимание, что три массива могут быть в любом порядке)
1 3 2
2 1 3
3 2 1
Ввод 4
дает выход
1 2 4 3
1 3 2 4
1 4 3 2
2 1 3 4
3 2 1 4
4 2 3 1
Ввод 7
дает выход
1 2 3 4 5 7 6
1 2 3 4 6 5 7
1 2 3 4 7 6 5
1 2 3 5 4 6 7
1 2 3 6 5 4 7
1 2 3 7 5 6 4
1 2 4 3 5 6 7
1 2 5 4 3 6 7
1 2 6 4 5 3 7
1 2 7 4 5 6 3
1 3 2 4 5 6 7
1 4 3 2 5 6 7
1 5 3 4 2 6 7
1 6 3 4 5 2 7
1 7 3 4 5 6 2
2 1 3 4 5 6 7
3 2 1 4 5 6 7
4 2 3 1 5 6 7
5 2 3 4 1 6 7
6 2 3 4 5 1 7
7 2 3 4 5 6 1
[0 ... n-1]
против [1 ... n]
! Я всегда чувствую себя немного раздраженным, когда мне приходится прибегать к 1+
нулю, потому что у J нулевые индексы.