Liczba partycji liczby całkowitej jest liczbą sposobów, w jakie liczba całkowita może być reprezentowana jako suma liczb całkowitych dodatnich.
Na przykład:
5
4 + 1
3 + 2
3 + 1 + 1
2 + 2 + 1
2 + 1 + 1 + 1
1 + 1 + 1 + 1 + 1
Istnieje 7 sposobów przedstawienia liczby 5, dlatego 7 jest numerem podziału odpowiadającym liczbie 5.
Numery partycji: OEIS: # A000041
Kierunki
Napisz program, który przyjmuje na wejściu dodatnią liczbę całkowitą i wypisuje dwie liczby, które generują dwie najbliższe liczby partycji do liczby wejściowej.
- Dane wejściowe muszą być 1 dodatnią liczbą całkowitą.
- Jeśli wejście nie jest numerem partycji, wyjściem muszą być 2 różne liczby całkowite dodatnie, które generują dwa numery najbliższe partycji do numeru wejścia. (Jeśli dwa numery partycji są równymi kandydatami na jedną z liczb wyjściowych, nie ma znaczenia, który wybierzesz.)
- Jeśli wejście jest numerem partycji, wyjściem musi być 1 dodatnia liczba całkowita, która generuje numer wejścia.
- Dane wejściowe i wyjściowe mogą być w dowolnym rozsądnym formacie.
- Możesz założyć, że dane wejściowe nie będą większe niż 100 milionów (np. Dane wyjściowe nigdy nie będą większe niż 95).
- Wbudowane funkcje do obliczania liczb działowe są nie dozwolone, wraz z innymi standardowymi otworami strzelniczymi .
- To jest golf golfowy , więc wygrywa najmniejsza liczba bajtów.
Numery partycji: OEIS: # A000041
Przykłady
Input: 66
Output: 11, 12
(Numery podziału odpowiadające liczbom 11 i 12 to 56 i 77, które są dwoma najbliższymi numerami podziału od 66.)
Input: 42
Output: 10
(Liczba 42 jest już numerem partycji, więc po prostu wypisz numer, który odpowiada numerowi partycji).
Input: 136
Output: 13, 14
(Dwie najbliższe liczby partycji do 136 są w rzeczywistości MNIEJSZE niż 136 (np. 101 i 135), dlatego dane wyjściowe wynoszą 13 i 14, a nie 14 i 15.)
Input: 1
Output: 0 or 1
(Zarówno 0, jak i 1 są poprawnymi danymi wyjściowymi w tym specjalnym przypadku.)
Input: 2484
Output: 26, 25 or 26, 27
(Oba z tych wyjść jest ważny, ponieważ 2484 jest równa d i stanowisko od 1958 i 3010.)
Input: 4
Output: 3, 4
(Tak)
5
jest na górze. (Dodam wyjaśnienie, jeśli uważasz, że nie jest wystarczająco jasne.)Odpowiedzi:
Pyth , 53
Wyjaśnienie i więcej golfa do naśladowania.
źródło
Python 2, 179 bajtów
Wykorzystuje rekurencyjną formułę z pięciokątnego twierdzenia Eulera .
Zadzwoń z
f(2484)
. Dane wyjściowe to krotka z jedną lub dwiema liczbami.źródło
Mathematica,
124123 bajtyWzór na numery partycji pobrane ze strony OEIS . (Może lub nie oszukuje ... Nie mogłem się zdecydować.)
Stosowanie:
Nie odpowiadam na wygraną. I jestem pewien, że można by dalej grać w golfa.
źródło