Ein lustiges Äquivalenzpaar ist 1 + 5 = 2 · 3 und 1 · 5 = 2 + 3 . Es gibt viele wie diese, eine andere ist 1 + 1 + 8 = 1 · 2 · 5 und 1 · 1 · 8 = 1 + 2 + 5 . Im Allgemeinen entspricht ein Produkt von n positiven Ganzzahlen einer Summe von n positiven Ganzzahlen und umgekehrt.
In dieser Challenge müssen Sie alle diese Kombinationen positiver Ganzzahlen für eine Eingabe n> 1 mit Ausnahme von Permutationen generieren . Sie können diese in jedem vernünftigen Format ausgeben. Zum Beispiel sind alle möglichen Lösungen für n = 3 :
(2, 2, 2) (1, 1, 6)
(1, 2, 3) (1, 2, 3)
(1, 3, 3) (1, 1, 7)
(1, 2, 5) (1, 1, 8)
Das Programm, das auf meinem 64-Bit-Intel-Ubuntu-Laptop mit 2 GB RAM die meisten Kombinationen für die höchsten n in einer Minute generiert, gewinnt. Wenn Ihre Antwort mehr als 2 GB RAM belegt oder in einer Sprache verfasst ist, die ich mit frei verfügbarer Software nicht testen kann, werde ich Ihre Antwort nicht bewerten. Ich werde die Antworten in zwei Wochen testen und den Gewinner auswählen. Später nicht konkurrierende Antworten können natürlich noch gepostet werden.
Da nicht bekannt ist, wie viele Lösungen für alle n vollständig sind, können Sie Antworten veröffentlichen, die unvollständige Lösungen generieren. Wenn jedoch eine andere Antwort eine (vollständigere) Lösung erzeugt, gewinnt diese Antwort , selbst wenn ihr Maximum n kleiner ist.
Zur Verdeutlichung folgt der Bewertungsprozess, um den Gewinner zu bestimmen:
Ich werde Ihr Programm mit n = 2, n = 3 usw. testen. Ich speichere alle Ihre Ausgaben und stoppe, wenn Ihr Programm mehr als eine Minute oder mehr als 2 GB RAM benötigt. Jedes Mal, wenn das Programm für eine bestimmte Eingabe n ausgeführt wird, wird es beendet, wenn es länger als 1 Minute dauert.
Ich schaue mir alle Ergebnisse für alle Programme für n = 2 an. Wenn ein Programm weniger gültige Lösungen liefert als ein anderes, wird dieses Programm eliminiert.
Wiederholen Sie Schritt 2 für n = 3, n = 4 usw. Das letzte stehende Programm gewinnt.