El juego de dados Mia presenta un orden muy trivial de conjuntos de tamaño dos:
{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}
En general, el orden dentro de una tupla no importa {x,y}={y,x},
{1,2}es mayor que cualquier otra cosa, los pares son mayores que los que no son pares y el valor numérico decide en caso de empate.
Ahora suponga que quiere usar ndados. Además, los dados tienen mcaras.
Ejemplo:
{1,5,3,4} < {1,2,6,3}desde 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}ya que ambos conjuntos tienen cada par y 611> 522
En pocas palabras, {1, ..., n}es mayor que cualquier otra cosa. Deje p > q, entonces p-de-uno-tipo es mayor que q-de-uno-bueno. En caso de empate, el segundo (, tercero, ...) - el más largo de su tipo gana. Finalmente, si aún no se puede tomar una decisión, gana el mayor valor numérico. El valor numérico de un conjunto es el número entero más grande que puede construir a partir de los números disponibles en el conjunto, utilizando la concatenación. Ejemplo:
{2,5,4,3}se convierte en 5432{4,11,3,4}se convierte en B443 (> se permiten dados de 6 caras, B = 11)
Su tarea es escribir el programa más pequeño posible (es decir, función) en el idioma de su elección, que, dados dos contenedores (lista, matriz, conjunto, ...) devuelve si gana el primero o el segundo.
Nota: puede suponer que los dos contenedores tienen la misma longitud y contienen solo enteros positivos, pero nada más. Especialmente pueden no estar ordenados. El valor de retorno puede ser cualquier cosa, por ejemplo, {-1, 0, 1} para {primeras victorias, empate, segundas victorias}.
{1,1,6},{2,2,5}? ¿Compara el valor numérico del mayor p-of-a-kind o de cualquier dado?