Wyzwanie:
Dane wejściowe: lista różnych dodatnich liczb całkowitych z zakresu .
Dane wyjściowe: liczba całkowita: liczba potasowań listy . W przypadku listy oznacza to, że lista jest podzielona na dwie połowy, a te połówki są przeplatane (tj. Jednorazowe przetasowanie listy [1,2,3,4,5,6,7,8,9,10]
raz [1,6,2,7,3,8,4,9,5,10]
, więc w przypadku tego wyzwania dane wejściowe [1,6,2,7,3,8,4,9,5,10]
byłyby wynikiem 1
).
Zasady konkursu:
- Możesz założyć, że lista będzie zawierała dodatnie liczby całkowite z zakresu (lub jeśli wybierzesz opcję 0-indeksowanych list wejściowych ).
- Możesz założyć, że wszystkie listy wejściowe będą albo prawidłową listą wymieszaną z karabinem, albo listą posortowaną, która nie jest tasowana (w takim przypadku dane wyjściowe są
0
). - Możesz założyć, że lista wejściowa będzie zawierać co najmniej trzy wartości.
Przykład krok po kroku:
Wkład: [1,3,5,7,9,2,4,6,8]
Odznaczanie go raz staje się: [1,5,9,4,8,3,7,2,6]
ponieważ każdy parzysty element o indeksie 0 jest pierwszy [1, ,5, ,9, ,4, ,8]
, a następnie wszystkie nieparzyste elementy o indeksie 0 potem [ ,3, ,7, ,2, ,6, ]
.
Lista nie jest jeszcze uporządkowana, dlatego kontynuujemy:
Ponowne przetasowanie listy staje się ponownie: [1,9,8,7,6,5,4,3,2]
Ponownie staje się: [1,8,6,4,2,9,7,5,3]
Następnie: [1,6,2,7,3,8,4,9,5]
I w końcu [1,2,3,4,5,6,7,8,9]
:, która jest uporządkowaną listą, więc skończymy tasowanie.
[1,3,5,7,9,2,4,6,8]
Pięć razy przetasowaliśmy oryginał, aby do niego dotrzeć [1,2,3,4,5,6,7,8,9]
, więc 5
w tym przypadku wynik jest taki.
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły z domyślnymi regułami We / Wy , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i typem zwracanych, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem kodu (tj. TIO ).
- Zalecane jest również dodanie wyjaśnienia do odpowiedzi.
Przypadki testowe:
Input Output
[1,2,3] 0
[1,2,3,4,5] 0
[1,3,2] 1
[1,6,2,7,3,8,4,9,5,10] 1
[1,3,5,7,2,4,6] 2
[1,8,6,4,2,9,7,5,3,10] 2
[1,9,8,7,6,5,4,3,2,10] 3
[1,5,9,4,8,3,7,2,6,10] 4
[1,3,5,7,9,2,4,6,8] 5
[1,6,11,5,10,4,9,3,8,2,7] 6
[1,10,19,9,18,8,17,7,16,6,15,5,14,4,13,3,12,2,11,20] 10
[1,3,5,7,9,11,13,15,17,19,2,4,6,8,10,12,14,16,18,20] 17
[1,141,32,172,63,203,94,234,125,16,156,47,187,78,218,109,249,140,31,171,62,202,93,233,124,15,155,46,186,77,217,108,248,139,30,170,61,201,92,232,123,14,154,45,185,76,216,107,247,138,29,169,60,200,91,231,122,13,153,44,184,75,215,106,246,137,28,168,59,199,90,230,121,12,152,43,183,74,214,105,245,136,27,167,58,198,89,229,120,11,151,42,182,73,213,104,244,135,26,166,57,197,88,228,119,10,150,41,181,72,212,103,243,134,25,165,56,196,87,227,118,9,149,40,180,71,211,102,242,133,24,164,55,195,86,226,117,8,148,39,179,70,210,101,241,132,23,163,54,194,85,225,116,7,147,38,178,69,209,100,240,131,22,162,53,193,84,224,115,6,146,37,177,68,208,99,239,130,21,161,52,192,83,223,114,5,145,36,176,67,207,98,238,129,20,160,51,191,82,222,113,4,144,35,175,66,206,97,237,128,19,159,50,190,81,221,112,3,143,34,174,65,205,96,236,127,18,158,49,189,80,220,111,2,142,33,173,64,204,95,235,126,17,157,48,188,79,219,110,250]
45
[1,3,5,7,9,2,4,6,8]
ma długość 9, ale dodam jeszcze kilka dla długości 7 i 11. EDYCJA: Dodano przypadki testowe [1,3,5,7,2,4,6] = 2
(długość 7) i [1,6,11,5,10,4,9,3,8,2,7] = 6
(długość 11). Mam nadzieję, że to pomaga.
[1,6,2,7,3,8,4,9,5,10]
lub [6,1,7,2,8,3,9,4,10,5]
są możliwe. W moim wyzwaniu oznacza to, że najwyższa karta zawsze pozostanie górną kartą, więc jest to naprawdę sztuczka. Nigdy nie widziałem, żeby ktoś używał tylko tasowania riffle do tasowania talii kart. Zwykle używają również innego rodzaju przetasowań pomiędzy nimi. W każdym razie jest już za późno na zmianę wyzwania, więc ze względu na to wyzwanie najlepsza karta zawsze pozostanie górną kartą po przetasowaniu.