Liczby naturalne, w tym 0, są formalnie zdefiniowane jako zbiory, w następujący sposób :
- Liczba 0 jest zdefiniowana jako pusty zestaw, {}
- Dla n ≥ 0 liczba n +1 jest zdefiniowana jako n ∪ { n }.
W konsekwencji n = {0, 1, ..., n -1}.
Pierwsze liczby zdefiniowane w tej procedurze to:
- 0 = {}
- 1 = {{}}
- 2 = {{}, {{}}}
- 3 = {{}, {{}}, {{}, {{}}}}
Wyzwanie
Biorąc pod uwagę n
, wypisz jego reprezentację jako zbiór.
Zasady
Wyjście może konsekwentnie używać wspornik charakteru takie jak {}
, []
, ()
lub <>
. Dowolne znaki (takie jak 01
) są niedozwolone.
Zamiast przecinka, jak powyżej, separatorem może być dowolny znak interpunkcyjny; lub może nie istnieć.
Spacje (nie nowe wiersze) mogą być wprowadzane arbitralnie i niekonsekwentnie.
Na przykład liczba 2 z nawiasami kwadratowymi i średnikiem jako separatorem jest [[]; [[]]]
lub jest równoważna [ [ ]; [ [ ] ] ]
lub nawet[ [ ] ;[ []]]
Kolejność w której elementy zestawu są określone nie ma znaczenia. Możesz więc użyć dowolnej kolejności w reprezentacji. Na przykład są to niektóre prawidłowe dane wyjściowe dla 3
:
{{},{{}},{{},{{}}}}
{{{}},{{},{{}}},{}}
{{{}},{{{}},{}},{}}
Możesz napisać program lub funkcję . Dane wyjściowe mogą być łańcuchem lub, jeśli używasz funkcji, możesz zwrócić zagnieżdżoną listę lub tablicę, których ciąg znaków jest zgodny z powyższym.
Przypadki testowe
0 -> {}
1 -> {{}}
2 -> {{},{{}}}
3 -> {{},{{}},{{},{{}}}}
4 -> {{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}}
5 -> {{},{{}},{{},{{}}},{{},{{}},{{},{{}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}}}
6 -> {{},{{}},{{},{{}}},{{},{{}},{{},{{}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}}}}
7 -> {{},{{}},{{},{{}}},{{},{{}},{{},{{}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}}}}}