P.S. Начал с формирования полного списка чтобы не запутаться.
One-liner no-brainer на pari/gp, печатает все разбиения всех чисел от
![$1$ $1$](https://dxdy-01.korotkov.co.uk/f/0/3/4/034d0a6be0424bffe9a6e7ac9236c0f582.png)
до
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
:
Код:
n=5;for(i=1,n,print(partitions(i)))
немного красивее:
Код:
all_part=List();n=5;for(i=1,n,v=partitions(i);for(j=1,#v,listput(all_part,Vec(v[j]))));
listsort(all_part);for(i=1,#all_part,print(all_part[i]))
Даёт все разбиения всех чисел от 1 до 5 на слагаемые в виде массивов слагаемых, в каком-то (странном) порядке.
Код:
[1]
[2]
[3]
[4]
[5]
[1, 1]
[1, 2]
[1, 3]
[1, 4]
[2, 2]
[2, 3]
[1, 1, 1]
[1, 1, 2]
[1, 1, 3]
[1, 2, 2]
[1, 1, 1, 1]
[1, 1, 1, 2]
[1, 1, 1, 1, 1]
Он-лайн интерпретатор pari/gp (вставить команду, нажать "Evaluate with PARI")
https://pari.math.u-bordeaux.fr/gp.html