Il gioco di dadi Mia introduce un ordine molto insignificante di set di dimensioni due:
{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}
In generale, l'ordine all'interno di una tupla non ha importanza {x,y}={y,x},
{1,2}è maggiore di ogni altra cosa, le coppie sono maggiori delle non coppie e il valore numerico decide in caso di pareggio.
Supponiamo ora che tu voglia usare i ndadi. Inoltre, i dadi hanno mfacce.
Esempio:
{1,5,3,4} < {1,2,6,3}dal 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}poiché entrambi i set hanno ciascuno una coppia e 611> 522
In poche parole, {1, ..., n}è più grande di ogni altra cosa. Let p > q, allora p-of-a-kind è maggiore di q-of-a-kind. In caso di pareggio, vince il secondo (, terzo, ...) - il più lungo nel suo genere. Infine, se non è ancora possibile prendere una decisione, vince il massimo valore numerico. Il valore numerico di un set è il numero intero più grande che puoi costruire dai numeri disponibili nel set, usando la concatenazione. Esempio:
{2,5,4,3}diventa 5432{4,11,3,4}diventa B443 (> sono ammessi dadi a 6 facce, B = 11)
Il tuo compito è quello di scrivere il programma più piccolo possibile (cioè la funzione) nella lingua che preferisci, che, dati due contenitori (elenco, matrice, set, ...) restituisce se vince il primo o il secondo.
Nota: si può presumere che i due contenitori abbiano la stessa lunghezza e contengano solo numeri interi positivi, ma nient'altro. Soprattutto potrebbero non essere ordinati. Il valore di ritorno può essere qualsiasi, ad esempio {-1, 0, 1} per {prime vittorie, pareggio, seconde vittorie}.
{1,1,6},{2,2,5}? Confronti il valore numerico del più grande p-of-a-kind o di qualsiasi dado?