Si encuentras alguna parte que no entiendes puedes dejarnos un comentario y te responderemos tan rápido como podamos.
Solución:
Matemática, 15 bytes
[email protected]@Mean/@#&
¡Pruébelo en línea!
Function
que espera una lista de dos listas. Mean/@#
toma la media aritmética de cada lista en la entrada, luego esas medias se pasan a Order
que vuelve -1
si gana la primera lista, 0
si hay empate, y 1
si gana la segunda lista.
Javascript (ES6), 52 50 bytes
(Se guardaron 2 bytes gracias a @Shaggy).
Aquí hay dos soluciones de 50 bytes:
f=(N,M,a=eval(N.join`+`)/N.length)=>M?(a-f(M))/0:a
(N,M,A=a=>eval(a.join`+`)/a.length)=>(A(N)-A(M))/0
Devoluciones Infinidad para N, -Infinidad para M, y Yaya por una corbata
La primera solución puede requerir un poco de explicación debido a la recursividad:
En la primera llamada a la función, a
se inicializa como el promedio de los N
array:
a=eval(N.join`+`)/N.length
M
tiene un valor en este punto, por lo que la primera parte de la expresión condicional se llama:
M ? (a-f(M))/0 : a
----------
La función se llama dentro de esta expresión, esta vez sustituyendo M
por N
.
En esta segunda llamada a la función, a
se inicializa como el promedio de N
— que era M
en la convocatoria anterior.
Dado que no hay un segundo parámetro durante esta llamada a la función, se activa la segunda parte de la expresión condicional, que devuelve el promedio:
M ? (a-f(M))/0 : a
--
Ahora podemos entender mejor la expresión:
(a - f(M)) / 0
Su:
(the average of N minus the average of M) divided by 0
La diferencia entre los promedios será un número positivo, un número negativo o 0.
Dividiendo la diferencia por 0 da como resultado Infinidad, -Infinidado Yaya – proporcionar los tres valores distintos según sea necesario.
Casos de prueba:
f=(N,M,a=eval(N.join`+`)/N.length)=>M?(a-f(M))/0:a
console.log(f([7], [6] )) // N wins (N has 7, M has 6 )
console.log(f([4,5], [4,4] )) // N wins (N has 4.5, M has 4)
console.log(f([2,3,4], [4,5,6] )) // M wins (N has 3, M has 5)
console.log(f([4,1,3], [7,3,2,1,1,2] )) // Tie (both have 2.666...)
console.log(f([100,390,1], [89,82,89] )) // N wins (N has 163.666..., M has 86.666...)
console.log(f([92,892], [892,92] )) // Tie (lists are basically identical)
console.log(f([10,182], [12,78,203,91] )) // Tie (both have 96)
Matemática, 21 bytes
Sign[[email protected]#[email protected]#2]&
1 para #
gana, -1 para #2
victorias, 0 por empate.
Sección de Reseñas y Valoraciones
Si conservas alguna suspicacia o disposición de avanzar nuestro post eres capaz de dejar una reseña y con gusto lo leeremos.