Herausforderung:
Eingabe: Eine Liste eindeutiger positiver Ganzzahlen im Bereich .
Ausgabe: Eine Ganzzahl: Gibt an, wie oft die Liste gemischt wird . Für eine Liste bedeutet dies, dass die Liste in zwei Hälften aufgeteilt ist und diese Hälften verschachtelt sind (dh, ein [1,2,3,4,5,6,7,8,9,10]
einmaliges Mischen der Liste würde zu Riffle führen [1,6,2,7,3,8,4,9,5,10]
, was für diese Herausforderung die Eingabe [1,6,2,7,3,8,4,9,5,10]
zur Folge hätte 1
).
Herausforderungsregeln:
- Sie können davon ausgehen, dass die Liste nur positive Ganzzahlen im Bereich (oder wenn Sie sich für 0-indizierte Eingabelisten entscheiden).
- Sie können davon ausgehen, dass alle Eingabelisten entweder eine gültige Riffle-Shuffled-Liste oder eine sortierte Liste sind, die nicht gemischt wird (in diesem Fall ist die Ausgabe
0
). - Sie können davon ausgehen, dass die Eingabeliste mindestens drei Werte enthält.
Schritt für Schritt Beispiel:
Eingang: [1,3,5,7,9,2,4,6,8]
Das einmalige Entmischen wird zu:, [1,5,9,4,8,3,7,2,6]
weil jedes gerade 0-indizierte Element zuerst [1, ,5, ,9, ,4, ,8]
kommt und danach alle ungeraden 0-indizierten Elemente [ ,3, ,7, ,2, ,6, ]
.
Die Liste ist noch nicht bestellt, also fahren wir fort:
Das Entmischen der Liste wird wieder: [1,9,8,7,6,5,4,3,2]
Wieder wird: [1,8,6,4,2,9,7,5,3]
Dann: [1,6,2,7,3,8,4,9,5]
Und schließlich [1,2,3,4,5,6,7,8,9]
:, was eine geordnete Liste ist, also sind wir fertig mit dem Entmischen.
Wir haben das Original [1,3,5,7,9,2,4,6,8]
fünf Mal neu gemischt , um es zu erreichen [1,2,3,4,5,6,7,8,9]
, daher ist die Ausgabe 5
in diesem Fall.
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Für Ihre Antwort gelten Standardregeln mit Standard-E / A-Regeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp, verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu (z. B. TIO ).
- Außerdem wird dringend empfohlen, eine Erklärung für Ihre Antwort hinzuzufügen.
Testfälle:
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]
ist von der Länge 9, aber ich werde vielleicht ein paar mehr für die Längen 7 und 11 hinzufügen. BEARBEITEN: Die Testfälle [1,3,5,7,2,4,6] = 2
(Länge 7) und [1,6,11,5,10,4,9,3,8,2,7] = 6
(Länge 11) wurden hinzugefügt . Hoffentlich hilft das.
[1,6,2,7,3,8,4,9,5,10]
oder [6,1,7,2,8,3,9,4,10,5]
möglich sind. In meiner Herausforderung bedeutet dies, dass die oberste Karte immer die oberste Karte bleibt, was in der Tat ein kleiner Trick ist. Ich habe noch nie jemanden gesehen, der nur Riffle-Shuffles verwendet, um ein Kartenspiel zu mischen. Normalerweise verwenden sie auch andere Mischformen dazwischen. Wie auch immer, es ist zu spät, um die Herausforderung jetzt zu ändern. Aus diesem Grund bleibt die oberste Karte nach einem Riffle-Shuffle immer die oberste Karte.