Esta es una especie de pregunta de edición de distancia, y es muy fácil. Estoy completamente muerto de cerebro sobre este tema y no puedo entenderlo hasta ahora.
Dada una serie de números, por ejemplo
[3, 1, 1, 1]
¿Cómo podría uno convertir más eficientemente todos los números en el mismo número, con el número mínimo de "movimientos"? Por "mover" se entiende agregar o eliminar uno de un número.
En el ejemplo anterior, los movimientos más eficientes serían:
[1, 1, 1, 1]
Esto requeriría 2 movimientos, reduciendo el primer número dos veces.
No puedo encontrar la mejor manera de averiguarlo, dados conjuntos mucho más grandes de cientos de números.
Originalmente intenté calcular el número promedio redondeado (suma de todos divididos por la longitud), y luego reducirlos al promedio calculado, pero el ejemplo anterior rompió esto, requiriendo 4 movimientos en lugar de 2.
Supongo que podría imaginar:
- La media,
- El modo,
- La mediana
y obtenga la distancia de edición de cada uno de ellos, eligiendo la distancia mínima. Sin embargo, no estoy seguro de que esto sea correcto en cada caso. ¿Cómo puedo yo saber?