Questa è una sorta di domanda a distanza di modifica ed è molto semplice. Sono solo un cervello morto su questo argomento e non riesco a capirlo finora.
Data una serie di numeri, ad es
[3, 1, 1, 1]
Come si trasformerebbero tutti i numeri in modo più efficiente nello stesso numero, con il numero minimo di "mosse"? Con "mossa" si intende aggiungere o rimuovere uno da un numero.
Nell'esempio sopra, le mosse più efficienti sarebbero:
[1, 1, 1, 1]
Ciò richiederebbe 2 mosse, riducendo il primo numero due volte.
Non riesco a capire il modo migliore per scoprirlo, dati array molto più grandi di centinaia di numeri.
Inizialmente ho provato a calcolare il numero medio arrotondato (somma di tutto diviso per lunghezza) e quindi a ridurli alla media calcolata, ma l'esempio sopra ha rotto questo, richiedendo 4 mosse anziché 2.
Suppongo di poter capire:
- La media,
- Il modo,
- La mediana
e ottieni la distanza di modifica di ciascuno di essi, scegliendo la distanza minima. Tuttavia, non sono sicuro che ciò sia corretto in ogni singola istanza. Come posso sapere?