Hej! Otrzymałem na studiach zadanie polegające na wygenerowaniu podziałów n-elementowego zbioru. "n" to liczba którą użytkownik podaje na początku. Znalazłem już w Internecie dużo informacji na ten temat, ale żadne nie pozwoliły mi napisać działającego programu. Mój obecny kod jest bardzo zagmatwany i działa tylko dla n <= 5. Próbowałem nawet pisać pseudokod/algorytm na kartce, ale dużo to nie pomogło.
Przykładowo, dla n=3 istnieje 5 takich podziałów:
1, 1, 1
1, 1, 2
1, 2, 1
1, 2, 2
1, 2, 3
Dla n=5 istnieje 15 takich podziałów:
1, 1, 1, 1
1, 1, 1, 2
1, 1, 2, 1
1, 1, 2, 2
1, 1, 2, 3
1, 2, 1, 1
1, 2, 1, 2
1, 2, 1, 3
1, 2, 2, 1
1, 2, 2, 2
1, 2, 2, 3
1, 2, 3, 1
1, 2, 3, 2
1, 2, 3, 3
1, 2, 3, 4
Inne pojęcia jakie udało mi się znaleźć, opisujące ten problem to: "Problem podziału zbioru", "Partition", "Partition problem".
Ciężko mi nawet wyjaśnić to co mam zrobić, ale mam nadzieję że jest to w miare zrozumiałe.