Gra w kości Mia wprowadza bardzo nietrywialną kolejność zestawów rozmiaru drugiego:
{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}
Zasadniczo kolejność w krotce nie ma znaczenia {x,y}={y,x},
{1,2}jest większa niż cokolwiek innego, Pary są większe niż nie-pary, a wartość liczbowa decyduje w przypadku remisu.
Załóżmy teraz, że chcesz użyć nkości. Ponadto kości mają mtwarze.
Przykład:
{1,5,3,4} < {1,2,6,3}od 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}ponieważ oba zestawy mają każdą jedną parę i 611> 522
Krótko mówiąc, {1, ..., n}jest większy niż cokolwiek innego. Niech p > qzatem rzeczownik rodzaju jest większy niż rzeczownik rodzaju. W przypadku remisu wygrywa drugi (, trzeci, ...) - najdłuższy w swoim rodzaju. Wreszcie, jeśli nie można jeszcze podjąć żadnej decyzji, wygrywa największa wartość liczbowa. Wartość liczbowa zestawu jest największą liczbą całkowitą, jaką można zbudować z dostępnych liczb w zestawie, używając konkatenacji. Przykład:
{2,5,4,3}staje się 5432{4,11,3,4}staje się B443 (dozwolone są kości o> 6 twarzach, B = 11)
Twoim zadaniem jest napisanie najmniejszego możliwego programu (tj. Funkcji) w wybranym języku, który, biorąc pod uwagę dwa kontenery (lista, tablica, zestaw, ...) zwraca, czy wygra pierwszy, czy drugi.
Uwaga: możesz założyć, że dwa pojemniki mają tę samą długość i zawierają tylko dodatnie liczby całkowite, ale nic więcej. Zwłaszcza nie można ich posortować. Zwracana wartość może być dowolna, np. {-1, 0, 1} dla {pierwsze wygrane, remis, drugie wygrane}.
{1,1,6},{2,2,5}? Czy porównujesz wartość liczbową największej kostki lub jakiejkolwiek kostki?