Mark lebt in einem winzigen Land, in dem Menschen leben, die dazu neigen, Dinge zu überdenken. Eines Tages beschließt der König des Landes, die Währung des Landes neu zu gestalten, um Veränderungen effizienter zu gestalten. Der König möchte die erwartete Anzahl von Münzen minimieren, die erforderlich sind, um einen beliebigen Betrag bis zum Betrag der kleinsten Papierrechnung genau zu bezahlen (jedoch nicht einzuschließen).
Angenommen, die kleinste Währungseinheit ist die Münze. Die kleinste Papierrechnung im Königreich ist Münzen wert . Der König beschließt, dass nicht mehr als verschiedene Münzwerte im Umlauf sein dürfen. Das Problem besteht also darin, eine Menge von ganzen Zahlen aus was 1 minimiertvorbehaltlich.
Nehmen Sie zum Beispiel den Standard-USD und seine Münzwerte von . Hier ist die kleinste Papierrechnung 100 der kleinsten Münze wert. Mit dieser Währung werden 4 Münzen benötigt, um 46 Cent zu verdienen. wir haben c 1 ( 46 ) = 1 , c 2 ( 46 ) = 0 , c 3 ( 46 ) = 2 , c 4 ( 46 ) = 1 , c 5 . Wenn wir jedoch Münzwerte von { 1 , 15 , 30 } hätten , würden nur 3 Münzen benötigt: c 1 ( 46 ) = 1 , c 2 ( 46 ) = 1 , c 3 ( 46 ) = 1 . Welcher dieser Nennwertsätze minimiert die durchschnittliche Anzahl von Münzen, um eine Summe von bis zu 99 Cent zu erhalten?
Allgemeiner , wie könnte man bei n und m algorithmisch die optimale Menge bestimmen? Es ist klar, dass man alle realisierbaren m- Teilmengen aufzählen und die durchschnittliche Anzahl von Münzen berechnen kann, die erforderlich sind, um Summen von 1 bis n - 1 zu erzielen , wobei die optimale auf dem Weg verfolgt wird. Da es ungefähr C ( n - 1 , m ) m- Teilmengen gibt (von denen nicht alle lebensfähig sind, aber immer noch), wäre dies nicht besonders effizient. Kannst du es besser machen?