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ć n
kości. Ponadto kości mają m
twarze.
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 > q
zatem 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?Odpowiedzi:
Galaretka , 16 bajtów
Pobiera listę list, z których każda reprezentuje rzut (w razie potrzeby może być więcej niż dwie) i zwraca listę zwycięzców.
Wypróbuj online! ... alternatywnie tutaj jest wersja, która zamiast tego sortuje rolki od najsłabszych do najsilniejszych.
W jaki sposób?
źródło
1,1,2
i1,2,2
są uważane za równe, ale specyfikacja ich obecnie nie rozróżnia.{1,1,5,6} < {1,1,5,5}
gdzie6 > 5
. Czy możesz to wyjaśnić?ÐṀ
, z pewnego rodzaju,Þ
dla celów testowych - wykorzystanie elementów z przykładu sortuje je w tej samej kolejności. Stosowana kolejność jest następująca: najpierw według „top-dog”, następnie według liczby równych twarzy malejących, a na koniec unikalnych twarzy malejących.JavaScript (ES6), 162 bajty
Objaśnienie: Pobiera dwie tablice jako parametry.
g
konwertuje każdą tablicę na listę zliczeń. Lista jest następnie sprawdzana, aby sprawdzić, czy odpowiada zestawowi1..n
. Liczby są sortowane, a posortowane wartości są łączone. Oba wyniki są następnie porównywane. Zwracana wartośćundefined
jest dodatnią liczbą całkowitą, jeśli wygrywa druga tablica, i ujemną liczbą całkowitą, jeśli wygrywa pierwsza tablica, w przeciwnym razie zwracana jest wartość falsy JavaScript .źródło
PHP 333 bajtów
Zakładam, że jest mniej kości niż lic dla najwyższej wartości jako ulica zaczynająca się od 1
Zarabiam trochę więcej. Dane wejściowe to tablica z więcej niż dwiema wartościami. Dane wyjściowe to posortowana tablica.
Awaria
źródło
Julia (489 bajtów)
Czytelny:
źródło