Saltar al contenido

Comparar los promedios de mis listas

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 Orderque 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *