Alex FoxЯвных формул, боюсь, мы не получим.
Но "подступиться" можно, например, так.
Пусть
![$C_{n,m}$ $C_{n,m}$](https://dxdy-03.korotkov.co.uk/f/6/5/3/65369d685d2b825db6b86499cc1c5ebd82.png)
количество строчек в вашей таблице.
Посмотрим на таблицу внимательно: шо мы видим?
Есть куча строчек, где первая цифра - 0, и есть еще куча - где не 0.
Сколько чисел в первой куче? Написав на первом месте 0, мы получили точно такую же задачу, токо с меньшим
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
.
Сколько - во второй? Если низя на первом (и на последующих) месте писать 0, а все остальное моно - дык это опять такая же задача, но с меньшим
![$m$ $m$](https://dxdy-01.korotkov.co.uk/f/0/e/5/0e51a2dede42189d77627c4d742822c382.png)
. И что-то это сильно напоминает... Ба, да это ж треугольник Паскаля! Его элементы - биноминальные к-ты.
Ой, надо же ,
![$C_{n,m} = C^n_{m+n}$ $C_{n,m} = C^n_{m+n}$](https://dxdy-03.korotkov.co.uk/f/6/5/5/655dc3cd5f31908c5ec4827f7250ef9e82.png)
, как и должно было быть для сочетаний с повторениями.
Давайте только считать наш тр-к прямоугольным...Повернем его, и уложим на первый квадрант клетчатой плоскости.
Нумерация клеточек: от 0 до...по горизонтали, и такая же - по вертикали.
Пусть
![$N$ $N$](https://dxdy-04.korotkov.co.uk/f/f/9/c/f9c4988898e7f532b9f826a75014ed3c82.png)
номер строчки таблицы, в которой мы хотим записать число,
![$M=C_{n,m}$ $M=C_{n,m}$](https://dxdy-02.korotkov.co.uk/f/5/d/1/5d10d69eb1a3ebadda34d57f9cf4259082.png)
- общее кол-во чисел в таблице, число
![$M$ $M$](https://dxdy-04.korotkov.co.uk/f/f/b/9/fb97d38bcc19230b0acd442e17db879c82.png)
стоит в клетке с номерами
![$(n,m)$ $(n,m)$](https://dxdy-01.korotkov.co.uk/f/8/f/d/8fd5c759237ff63c88f39eceeda1fb4a82.png)
. Ясно, что должно быть
![$N\leqslant M$ $N\leqslant M$](https://dxdy-04.korotkov.co.uk/f/7/4/b/74bab38c0ac73789f13b1047a09521e382.png)
. Число
![$M$ $M$](https://dxdy-04.korotkov.co.uk/f/f/b/9/fb97d38bcc19230b0acd442e17db879c82.png)
равно сумме двух: левого
![$L$ $L$](https://dxdy-02.korotkov.co.uk/f/d/d/c/ddcb483302ed36a59286424aa5e0be1782.png)
, и нижнего
![$D$ $D$](https://dxdy-04.korotkov.co.uk/f/7/8/e/78ec2b7008296ce0561cf83393cb746d82.png)
соседей. Пусть
![$X=M-N$ $X=M-N$](https://dxdy-01.korotkov.co.uk/f/4/4/3/4435f3be6a82ece64a6187d548876a7c82.png)
.
Будем идти из
![$M$ $M$](https://dxdy-04.korotkov.co.uk/f/f/b/9/fb97d38bcc19230b0acd442e17db879c82.png)
по столбцу вниз, пока не встретим число, меньшее
![$X$ $X$](https://dxdy-01.korotkov.co.uk/f/c/b/f/cbfb1b2a33b28eab8a3e59464768e81082.png)
. Тут мы затормозим; количество сделанных шагов и есть искомый первый символ. Далее надо пересчет, рекурсия, и т.д.
Т.е., алгоритм вполне реализуем; бин. к-ты можно считать последовательно, сложность алгоритма - порядка
![$mn$ $mn$](https://dxdy-03.korotkov.co.uk/f/e/4/8/e482c73e1741b27cd59b521c3f47e0b182.png)
.