Opis wyzwania
„Wykroczenie” sekwencji jest permutacją, w której żaden element nie pojawia się w pierwotnej pozycji. Na przykład ECABD
jest odstępstwem ABCDE
, ale CBEDA
nie jest:
ABCDE
| | <- B and D are in their orignal positions
CBEDA
Biorąc pod uwagę sekwencję, wygeneruj jej przypadkowe odstępstwo.
Notatki
Możesz wziąć ciąg znaków jako dane wejściowe lub tablicę / listę elementów (liczby całkowite, znaki, obiekty ...)
Zamiast zwracać nowy obiekt, możesz zmodyfikować istniejący, zamieniając jego elementy
Każde odstępstwo powinno mieć jednakowe prawdopodobieństwo wygenerowania
Możesz założyć, że w sekwencji jest więcej niż jeden element i żaden nie pojawia się więcej niż jeden raz