Bei n ganzen Zahlen zwischen [0,10000] als D 1 ,D 2 ...,D n , wobei es Duplikate geben kann und n sehr groß sein kann:
Ich möchte k verschiedene repräsentative ganze Zahlen (zum Beispiel k=5) zwischen [0,10000] als R 1 ,R 2 ,...,R k , so dass die Summe der Fehler aller repräsentativen ganzen Zahlen minimiert wird.
Der Fehler einer repräsentativen ganzen Zahl wird im Folgenden definiert:
Angenommen, wir haben k repräsentative ganze Zahlen in aufsteigender Reihenfolge als {R 1 ,R 2 ...,R k }, der Fehler von R i ist:
und ich möchte die Summe der Fehler der k repräsentativen ganzen Zahlen minimieren:
Wie kann dies effizient durchgeführt werden?
EDIT1: Die kleinste der k repräsentativen ganzen Zahlen muss die kleinste Zahl in {D 1 ,D 2 ...,D n }
EDIT2: Die größte der k repräsentativen ganzen Zahlen muss die größte Zahl in {D 1 ,D 2 ...,D n } plus 1. Wenn zum Beispiel die größte Zahl in {D 1 ,D 2 ...,D n } 9787 ist, dann ist R k ist 9788.
EDIT3: Ein konkretes Beispiel finden Sie hier:
D={1,3,3,7,8,14,14,14,30} und wenn k=5 und R als {1,6,10,17,31} gewählt wird, dann ist die Summe der Fehler :
Summe der Fehler=(1-1)+(3-1)*2+(7-6)+(8-6)+(14-10)*3+(30-17)=32
Dies liegt daran, dass 1<=1,3,3<6 , 6<=7,8<10, 10<=14,14,14<17, 17<=30<31