Как сделать каталонский номер с рекурсией в Excel? - PullRequest
1 голос
/ 22 февраля 2012

Я попытался сделать следующее в Excel, используя N значений:

http://upload.wikimedia.org/math/b/a/d/bad5db400fcfd7092e2008e376993a27.png

Я могу сделать Ci, используя = COMBIN (2 * N; N) / (N + 1), но как сделать n-i-1 с учетом моего n> = 0?

Спасибо

1 Ответ

0 голосов
/ 23 февраля 2012

Это возможно, но неаккуратно, потому что Excel не позволяет легко использовать обращенные массивы (например, если вы введете B5: B1, Excel преобразует это в B1: B5).

Например, в псевдо-Excel нотации

C9 = C0 * C8 + C1 * C7 + C2 * C6 + ... = "субпродукт (C0: C8, C8: C0)"

Но C8: C0 не допускается. Чтобы получить что-то похожее на C8: C0, мы должны использовать функцию offset. Вы можете google offset, но вот несколько примеров,

ROW(B4)-ROW(B$2:B4) = 4 - [2,3,4] = [2,1,0]
OFFSET(B$2, ROW(B4)-ROW(B$2:B4), 0, 3, 1) = OFFSET(B$2, [2,1,0], 0, 3, 1) = t[B4,B3,B2]
OFFSET(B$2, ROW(B4)-ROW(B$2:B4), 1, 3, 1) = t[C4,C3,C2]
OFFSET(B$2, ROW(B4)-ROW(B$2:B4), -1, 3, 1) = t[A4,A3,A2]
OFFSET(B$2, ROW(B4)-ROW(B$2:B4), 0, 2, 1) = t[B4,B3]
OFFSET(B$2, ROW(B4)-ROW(B$2:B4), 0, 1, 1) = t[B4]

Вот пример рабочего листа для расчета каталонских чисел по вашей формуле:

   A    B
1  N   C_n
   --------
2  0   =1
3  1   =SUMPRODUCT(B$2:B2, N(OFFSET(B$2, ROW(B2)-ROW(B$2:B2),0,A3,1)))
4  2   =SUMPRODUCT(B$2:B3, N(OFFSET(B$2, ROW(B3)-ROW(B$2:B3),0,A4,1)))
5  3   =SUMPRODUCT(B$2:B4, N(OFFSET(B$2, ROW(B4)-ROW(B$2:B4),0,A5,1)))
6  4   cut-and-paste
...