Zabawna para ekwiwalentów wynosi 1 + 5 = 2,3 i 1,5 = 2 + 3 . Istnieje wiele takich, inna to 1 + 1 + 8 = 1 · 2 · 5 i 1 · 1 · 8 = 1 + 2 + 5 . Zasadniczo iloczyn n dodatnich liczb całkowitych jest równy sumie n dodatnich liczb całkowitych i odwrotnie.
W tym wyzwaniu musisz wygenerować wszystkie takie kombinacje dodatnich liczb całkowitych dla wejścia n> 1 , z wyłączeniem permutacji. Możesz je wydrukować w dowolnym rozsądnym formacie. Na przykład wszystkie możliwe rozwiązania dla n = 3 to:
(2, 2, 2) (1, 1, 6)
(1, 2, 3) (1, 2, 3)
(1, 3, 3) (1, 1, 7)
(1, 2, 5) (1, 1, 8)
Program, który może wygenerować najwięcej kombinacji dla najwyższej n w ciągu jednej minuty na moim 2 GB pamięci RAM , wygrywa 64-bitowy laptop Intel Ubuntu. Jeśli twoja odpowiedź zużywa więcej niż 2 GB pamięci RAM lub jest napisana w języku, którego nie mogę przetestować za pomocą bezpłatnego oprogramowania, nie uzyskam odpowiedzi. Przetestuję odpowiedzi za dwa tygodnie i wybiorę zwycięzcę. Oczywiście później można opublikować niekonkurencyjne odpowiedzi.
Ponieważ nie wiadomo, jakie są pełne zestawy rozwiązań dla wszystkich n , możesz publikować odpowiedzi, które generują niekompletne rozwiązania. Jeśli jednak inna odpowiedź wygeneruje (bardziej) kompletne rozwiązanie, nawet jeśli ich maksymalna liczba n jest mniejsza , odpowiedź wygrywa.
Aby to wyjaśnić, oto proces punktacji w celu ustalenia zwycięzcy:
Przetestuję twój program przy n = 2, n = 3 itd. Przechowuję wszystkie twoje wyjścia i zatrzymuję się, gdy twój program zajmie więcej niż minutę lub więcej niż 2 GB pamięci RAM. Za każdym razem, gdy program jest uruchamiany dla danego wejścia n, zostanie zakończony, jeśli zajmie to więcej niż 1 minutę.
Patrzę na wszystkie wyniki dla wszystkich programów dla n = 2. Jeśli program wytworzył mniej poprawne rozwiązania niż inne, program ten jest eliminowany.
Powtórz krok 2 dla n = 3, n = 4 itd. ... Ostatni stojący program wygrywa.