Sie haben Sticks beliebiger Länge, die nicht unbedingt ganzzahlig sind.
Wenn Sie einige Sticks schneiden (ein Schnitt schneidet einen Stick, aber wir können so oft schneiden, wie wir möchten), möchten Sie Sticks erhalten, so dass:
- Alle diese Stöcke haben die gleiche Länge;
- Alle Sticks sind mindestens so lang wie alle anderen Sticks.
Beachten Sie, dass wir nach dem Durchführen von Schnitten Sticks erhalten .C.
Welchen Algorithmus würden Sie verwenden, damit die Anzahl der erforderlichen Schnitte minimal ist? Und wie lautet diese Nummer?
Nehmen Sie als Beispiel und jedes . Der folgende Algorithmus kann verwendet werden:
- die Sticks in absteigender Reihenfolge der Länge so an, dass .
- Wenn dann schneide Stick # 1 in zwei gleiche Stücke. Es gibt jetzt zwei Sticks der Länge , die mindestens so lang sind wie die verbleibenden Sticks .
- Andernfalls ( ) den Stab Nr. 1 in zwei ungleiche Stücke der Größen und . Es gibt jetzt zwei Sticks der Länge , die länger als und die anderen Sticks .
In beiden Fällen ist ein einziger Schnitt ausreichend.
Ich habe versucht, dies auf ein größeres zu verallgemeinern , aber es scheint viele Fälle zu geben, die berücksichtigt werden müssen. Können Sie eine elegante Lösung finden?