Dies ist ein "Gegenstück" zu einem anderen Puzzle, Acht Münzen für den fairen König bei Puzzling.SE.
Sie können das obige Puzzle für den Hintergrund lesen. Die Details zu diesem Puzzle sind wie folgt.
Ein Satz von 8 Arten von Münzen mit unterschiedlichen Werten wird erstellt. Der König möchte, dass Sie das maximale N herausfinden, sodass eine beliebige Anzahl von Preisen von 0 bis N mit einer Kombination von nicht mehr als 8 Münzen und ohne Gebühren bezahlt werden kann.
Zum Beispiel (entnommen aus Glorfindels Antwort). Wenn ein Satz Münzen mit den Werten 1, 2, 5, 13, 34, 89, 233, 610 angegeben wird, sollte Ihr Programm 1596 ausgeben, da jede Zahl zwischen 0 und 1596 (einschließlich) durch die Summe von nicht mehr dargestellt werden kann als 8 Nummern aus der angegebenen Liste (Nummern können sich wiederholen), während 1597 nicht auf diese Weise dargestellt werden kann.
In mathematischer Weise erfüllt, wenn die Eingabe eine Menge S ist, die aus 8 positiven ganzen Zahlen besteht, die gewünschte Ausgabe N, dass für jede Zahl n zwischen 0 und N x1, x2, x3, ..., x8 existiert, so dass
Ihr Ziel ist es, ein Programm, eine Funktion oder ein Snippet zu schreiben, das 8 Zahlen als Eingabe akzeptiert und das Maximum N wie oben beschrieben ausgibt.
Regeln:
- Flexible I / O-Funktionen sind zulässig, sodass Ihr Programm die Eingaben in jeder am besten geeigneten Form verarbeiten kann. Sie können davon ausgehen, dass die eingegebenen Zahlen so sortiert sind, wie es für Ihr Programm am besten geeignet ist.
- Bitte geben Sie dies in Ihrer Antwort an, wenn Ihr Programm von der Eingabereihenfolge abhängt
- Die Eingabe besteht aus 8 verschiedenen positiven Ganzzahlen (keine Nullen). Die Ausgabe ist eine nicht negative Ganzzahl.
- Falls der Eingabesatz keine 1 enthält, sollte Ihr Programm 0 ausgeben, da eine beliebige Zahl von 0 bis 0 die Anforderung erfüllt.
- Im Falle einer ungültigen Eingabe (der Satz enthält null, negative oder doppelte Zahlen) kann Ihr Programm alles tun.
- Standardlücken sind verboten.
- Ihr Programm sollte innerhalb weniger Minuten auf einem modernen Computer ausgeführt werden.
Testfälle (meistens aus den Antworten unter der verknüpften Frage zu Puzzling entnommen):
[1, 2, 3, 4, 5, 6, 7, 8] => 64
[2, 3, 4, 5, 6, 7, 8, 9] => 0
[1, 3, 4, 5, 6, 7, 8, 9] => 72
[1, 2, 5, 13, 34, 89, 233, 610] => 1596
[1, 5, 16, 51, 130, 332, 471, 1082] => 2721
[1, 6, 20, 75, 175, 474, 756, 785] => 3356
Dies ist ein Code-Golf , also gewinnt das kürzeste Programm oder Snippet in jeder Sprache!