Das Würfelspiel Mia führt eine sehr nicht triviale Reihenfolge von Sätzen der Größe zwei ein:
{3,1} < {3,2} < {4,1} < {4,2} < {4,3} < {5,1} < {5,4} < {6,1} < {6,5} < {1,1} < {2,2} < {6,6} < {1,2}
Im Allgemeinen spielt die Reihenfolge innerhalb eines Tupels keine Rolle {x,y}={y,x}
,
{1,2}
ist größer als alles andere, Paare sind größer als Nichtpaare und der numerische Wert entscheidet im Falle eines Gleichstands.
Angenommen, Sie möchten n
Würfel verwenden. Auch die Würfel haben m
Gesichter.
Beispiel:
{1,5,3,4} < {1,2,6,3}
seit 5431 <6321{1,2,3,5} < {1,1,5,6} < {1,1,5,5}, {1,1,6,6} < {1,1,1,3} < {2,2,2,3} < {1,1,1,1} < {1,2,3,4}
{2,2,5} < {1,1,6}
da beide Sätze jeweils ein Paar und 611> 522 haben
Kurz gesagt, {1, ..., n}
ist größer als alles andere. Sei p > q
, dann ist p-of-a-kind größer als q-of-a-kind. Bei einem Unentschieden gewinnt das zweite (, dritte, ...) - längste Unikat. Wenn noch keine Entscheidung getroffen werden konnte, gewinnt der größte Zahlenwert. Der numerische Wert einer Menge ist die größte Ganzzahl, die Sie mithilfe der Verkettung aus den verfügbaren Zahlen in der Menge erstellen können. Beispiel:
{2,5,4,3}
wird 5432{4,11,3,4}
wird zu B443 (> 6-seitige Würfel sind erlaubt, B = 11)
Ihre Aufgabe ist es, das kleinstmögliche Programm (dh die kleinste Funktion) in der Sprache Ihrer Wahl zu schreiben, das bei zwei Containern (Liste, Array, Set, ...) zurückgibt, ob der erste oder der zweite gewinnt.
Hinweis: Sie können davon ausgehen, dass die beiden Container dieselbe Länge haben und nur positive Ganzzahlen enthalten, sonst nichts. Insbesondere können sie nicht sortiert werden. Der Rückgabewert kann ein beliebiger Wert sein, z. B. {-1, 0, 1} für {erste Siege, Unentschieden, zweite Siege}.
{1,1,6}
,{2,2,5}
? Vergleichen Sie den numerischen Wert des größten p-of-a-kind oder eines Würfels?Antworten:
Gelee , 16 Bytes
Nimmt eine Liste von Listen, von denen jede einen Wurf darstellt (kann also mehr als zwei sein, wenn gewünscht) und gibt eine Liste der Gewinner zurück.
Probieren Sie es online aus! ... alternativ ist hier eine Version, die stattdessen die Rollen von der schwächsten zur stärksten sortiert.
Wie?
quelle
1,1,2
und werde1,2,2
als gleich angesehen, aber die Spezifikation unterscheidet sie derzeit auch nicht.{1,1,5,6} < {1,1,5,5}
wo6 > 5
. Könnten Sie das klarstellen?ÐṀ
mit einer Art,Þ
für die Zwecke testen - die Elemente aus dem Beispiel unter Verwendung es sie in derselben Reihenfolge sortiert. Die verwendete Reihenfolge ist: zuerst nach "Top-Dog", dann nach Anzahl gleich absteigender Gesichter und schließlich nach absteigenden eindeutigen Gesichtern.JavaScript (ES6), 162 Byte
Erläuterung: Nimmt zwei Arrays als Parameter.
g
konvertiert jedes Array in eine Liste von Zählungen. Die Liste wird dann überprüft, um festzustellen, ob sie einem Satz entspricht1..n
. Die Zählungen werden sortiert und die sortierten Werte werden verkettet. Die beiden Ergebnisse werden dann verglichen. Der Rückgabewert ist eine positive Ganzzahl, wenn das zweite Array gewinnt, und eine negative Ganzzahl, wenn das erste Array gewinnt, andernfalls wird der falsche JavaScript-Wertundefined
zurückgegeben.quelle
PHP 333 Bytes
Ich gehe davon aus, dass es weniger Würfel gibt als Gesichter für den höchsten Wert als Straße, die mit 1 beginnt
Ich mache ein bisschen mehr. Die Eingabe ist ein Array mit mehr als zwei Werten. Die Ausgabe ist das sortierte Array.
Nervenzusammenbruch
quelle
Julia (489 Bytes)
Lesbar:
quelle