Wie teilen Sie die Anzahl in integer-Stücke, die jeweils ein Vielfaches von n?

Hatte eine harte Zeit kommen mit einer prägnanten Titel für diese. Ich bin sicher, es gibt Begriffe für das, was ich erreichen will und es ist kein Zweifel, einen gemeinsamen Algorithmus zu erreichen, was ich bin, nachdem ich einfach nicht über Sie wissen noch.

Muss ich brechen eine Anzahl in n Stücke, die jeweils ein Vielfaches von 50. Die Zahl selbst ein Vielfaches von 50. Hier ist ein Beispiel:
Teilen 5,000 3 und am Ende mit drei zahlen, die jeweils ein Vielfaches von 50:

  • 1,650
  • 1,700
  • 1,650

Ich würde auch gerne die zahlen so verteilt, dass Sie flip hin und her, hier ist ein Beispiel mit mehr zahlen um dies zu verdeutlichen:
Teilen Sie 5.000 von 7 und am Ende mit 7 zahlen, die jeweils ein Vielfaches von 50:

  • 700
  • 750
  • 700
  • 750
  • 700
  • 700
  • 700

Beachten Sie, dass im obigen Beispiel habe ich bin nicht besorgt, dass die extra-50 ist nicht zentriert in der Serie, ist, dass ich nicht brauchen, um etwas wie dies:

  • 700
  • 700
  • 750 <--- Hinweis: die '50er Jahre' zentriert sind
  • 700
  • 750 <--- Hinweis: die '50er Jahre' zentriert sind
  • 700
  • 700

Ich hoffe, ich habe gefragt, dies ist deutlich genug, dass Sie verstehen, was ich erreichen will.

Update: Hier ist die Funktion die ich verwenden werde.

var number = 5000;
var n = 7;
var multiple = 50;

var values = getIntDividedIntoMultiple(number, n, multiple)

function getIntDividedIntoMultiple(dividend, divisor, multiple)
{
    var values = [];
    while (dividend> 0 && divisor > 0)
    {
        var a = Math.round(dividend/ divisor / multiple) * multiple;
        dividend -= a;
        divisor--;
        values.push(a);
    }

    return values;
}
  • Von deiner Beispiele, es scheint, dass Sie wollen, um jede einzelne der kleineren zahlen wie möglich entspricht. Ist das richtig? Eine triviale Lösung, zum Beispiel, wäre es 50 für jeden der ersten n-1 zahlen und den Rest für den rest, aber ich nehme an, dass ist nicht das, was du suchst...
InformationsquelleAutor Steve K | 2012-03-19
Schreibe einen Kommentar