Biorąc pod uwagę pewną dodatnią liczbę całkowitą wygeneruj wszystkie odstępstwa obiektów.
Detale
- Wykolejenie to permutacja bez stałego punktu. (Oznacza to, że w każdym numerze wykreślenia nie może znajdować się w wpisie).
- Dane wyjściowe powinny składać się z odchyleń liczb (lub alternatywnie ).
- Alternatywnie zawsze możesz wydrukować odchylenia odpowiednio (lub ), ale musisz to określić.
- Dane wyjściowe muszą być deterministyczne, to znaczy za każdym razem, gdy program jest wywoływany z pewnymi danymi jako danymi wejściowymi, dane wyjściowe powinny być takie same (co oznacza, że kolejność odstępstw musi pozostać taka sama), a pełne dane wyjściowe muszą być wykonane w ciągu skończony czas za każdym razem (nie jest to wystarczające z prawdopodobieństwem 1).
- Możesz założyć, że
- Dla niektórych podanych możesz albo wygenerować wszystkie derangencje, albo alternatywnie możesz wziąć inną liczbę całkowitą która służy jako indeks i wydrukować -te derangement (w wybranej przez ciebie kolejności).
Przykłady
Pamiętaj, że kolejność odstępstw nie musi być taka sama, jak wymieniono tutaj:
n=2: (2,1)
n=3: (2,3,1),(3,1,2)
n=4: (2,1,4,3),(2,3,4,1),(2,4,1,3), (3,1,4,2),(3,4,1,2),(3,4,2,1), (4,1,2,3),(4,3,1,2),(4,3,2,1)
OEIS A000166 liczy liczbę wykroczeń .