Ich möchte einen effizienten Algorithmus finden, um eine ganze Zahl auf einen Wert in einem max, min Bereich zu teilen. Es sollte so wenige Werte wie möglich geben.split einen Wert in Werte in max, min Bereich
Zum Beispiel: max = 7 min = 3 dann
8 = 4 + 4
9 = 4 + 5
16 = 5 + 5 + 6 (not 4 + 4 + 4 + 4)
EDIT
Um es deutlich zu machen, lassen Sie ein Beispiel nehmen. Angenommen, Sie haben einen Haufen Äpfel und Sie möchten sie in Körbe packen. Jeder Korb kann 3 bis 7 Äpfel enthalten, und Sie möchten, dass die Anzahl der Körbe so klein wie möglich ist.
** Ich erwähnte, dass der Wert gleichmäßig aufgeteilt werden sollte, aber das ist nicht so wichtig. Ich mache mir mehr Sorgen um weniger Körbe.
Wie definieren Sie "gleichmäßig aufgeteilt"? Was macht "16 = 5 + 5 + 6" zu einer besseren Lösung als "16 = 4 + 4 + 4 + 4"? –
Entschuldigung, dass ich es nicht klar gemacht habe, habe ich die Frage aktualisiert, danke – TomNg
Ok, nächste Frage: Was genau macht "16 = 5 + 5 + 6" besser als "16 = 6 + 6 + 4"? –