Wyzwanie
W najkrótszym kodzie:
- Oblicz długość cyklu permutacji idealnego tasowania na talii kart dowolnego rozmiaru n (gdzie n ≥ 2 i n jest parzyste).
- Wyprowadzić tabelę wszystkich długości cyklu dla 2 ≤ n ≤ 1000 ( n parzystych).
Pamiętaj, że istnieją dwa podstawowe sposoby definiowania idealnego losowania. Istnieje tasowanie na zewnątrz , które utrzymuje pierwszą kartę na górze, a ostatnią na dole, i jest tasowanie , które przesuwa pierwszą i ostatnią kartę o jedną pozycję w kierunku środka. Możesz wybrać, czy wykonujesz przetasowanie, czy tasowanie; algorytm jest prawie identyczny między nimi.
- przetasowanie talii 10 kart: [1,2,3,4,5,6,7,8,9,10] ↦ [1,6,2,7,3,8,4,9,5, 10].
- tasowanie talii 10 kart: [1,2,3,4,5,6,7,8,9,10] ↦ [6,1,7,2,8,3,9,4,10, 5].
Przykład graficzny
Tutaj widzimy, że przetasowanie na talię 20 kart ma długość cyklu 18 kroków. (To tylko dla ilustracji; twoje rozwiązanie nie jest wymagane do graficznego generowania cykli). Z drugiej strony klasyczna talia 52 kart ma długość cyklu wymieszania wynoszącą tylko 8 kroków (nie pokazano).
Przetasowanie w talii 20 kart ma długość cyklu tylko 6 kroków.
Tabelaryczny przykład wyniku
Twój program powinien wypisać coś podobnego do tego, chociaż możesz wybrać dowolny format tabelaryczny, który najbardziej ci się podoba. To jest do przetasowania:
2 1
4 2
6 4
8 3
10 6
12 10
14 12
16 4
18 8
20 18
22 6
24 11
26 20
28 18
30 28
32 5
34 10
36 12
38 36
40 12
...many lines omitted...
1000 36
pytania
- Czy wydaje się, że istnieje związek między wejściem liczbowym n a liczbą jego cykli, gdy n jest potęgą 2?
- Co powiesz na to, kiedy n nie jest potęgą 2?
- Co ciekawe, w przypadku talii 1000 kart liczba cykli wymieszania wynosi tylko 36, zaś w przypadku talii 500 kart liczba cykli wymieszania wynosi 166. Dlaczego tak może być?
- Jaka jest największa liczba, jaką można znaleźć, której liczba cykli c jest znacznie mniejsza niż n , co oznacza, że stosunek n / c jest zmaksymalizowany?