2. Тождество Эйлера и число разбиений

Пусть n – натуральное число. Обозначим через p(n) число способов, которыми можно представить n в виде суммы натуральных слагаемых (при этом слагаемые в суммах могут повторяться, и представления, различающиеся лишь порядком слагаемых, считаются одинаковыми). Например:

p(1) = 1;
p(2) = 2 (2 = 2; 2 = 1 + 1);
p(3) = 3 (3 = 3; 3 = 2 + 1; 3 = 1 + 1 + 1);
p(4) = 5 (4; 3 + 1; 2 + 2; 2 + 1 + 1; 1 + 1 + 1 + 1);
p(5) = 7

(5; 4 + 1; 3 + 2; 3 + 1 + 1; 2 + 2 + 1;

2 + 1 + 1 + 1; 1 + 1 + 1 + 1 + 1).

Числа p(n) входят во многие математические формулы, и их полезно уметь вычислять. Но как это сделать? Попробуйте, например, найти p(10). Вам придется изрядно повозиться, и, если повезёт, вы найдете правильный ответ: 42. А если нужно знать, скажем, p(50)? На помощь приходит тождество Эйлера.

Сначала немного «теории». Положим

π(x) = 1 + p(1)x + p(2)x2 + p(3)x3 + ... = 1 + x + 2x2 + 3x3 + 5x4 + 7x5 + ...

Как и φ(x), π(x) – функция, определённая при –1 < x < 1. Но, опять-таки, нас она интересует только как степенной ряд.

Теорема. Ряды φ(x) и π(x), взаимно обратны, то есть

φ(x) · π(x) = 1.

Вы понимаете, в чем смысл этого равенства? Степенные ряды можно перемножать:

(a0 + a1x + a1x2 + ...)(b0 + b1x + b1x2 + ...) = a0b0 + a0b1x + a0b2x2 + ... +
+ a1b0x + a1b1x2 + a1b2x3 + ... + a2b0x2 + a2b1x3 + a2b2x4 + ... +
. . . . . . . . . . . . . . . . . . . . . . .
= a0b0 + (a0b1 + a1b0)x + (a0b2 + 2a1b1 + a2b0)x2 + ...;

наше утверждение означает, что если перемножить таким образом ряды φ(x) и π(x), то полученное произведение сведётся к 1: коэффициенты при x, x2, x3 ... будут равны нулю.

Доказательство.

1

φ(x)

=

1

1 – x

·

1

1 – x2

· ... ·

1

1 – xk

· ... =

= (1 + x + x2 + x3 + ...)(1 + x2 + x4 + x6 + ...)×...×(1 + xk + x2k + x3k + ...)... .

При раскрытии скобок в последнем произведении получится сумма всевозможных выражений вида

a1 2a2 kak
x x ... x ,

где a1 ..., ak – целые неотрицательные числа. Таким образом, xn войдёт в эту сумму столько раз, сколькими способами n можно представить в виде

a1 + 2a2 + ... + kak.

Но это представление можно переписать так:

1 + ... + 1 + 2 + ... + 2 + ... + k + ... + k .
a1 a2 ak

Мы видим, что представлений числа n в виде a1 + 2a2 + ... + kak столько же, сколько есть его представлений в виде суммы натуральных слагаемых, то есть p(n). Таким образом, коэффициент при xn в нашем произведении равен p(n), то есть 1/φ(x) = π(x). Теорема доказана.

Положив для удобства p(0) = 1, напишем

(1 – x – x2 + x5 + x7 + ...)(1 + p(1)x + p(2)x2 + ...) = 1

(коэффициенты в первом множителе пишутся согласно тождеству Эйлера!). Раскроем скобки и приравняем нулю коэффициенты при x, x2, x3, ..., xn в левой части. Получим:

p(1) – p(0) = 0;
p(2) – p(1) – p(0) = 0;
p(3) – p(2) – p(1) = 0;
. . . . . . . . . . . . . . . . . . . . . .
p(n) – p(n–1) – p(n–2) + p(n–5) + p(n–7) – ... = 0

(в левой части последней формулы нужно писать слагаемые до тех пор, пока аргумент у p остаётся неотрицательным). Итак,

p(n) = p(n–1) + p(n–2) – p(n–5) – p(n–7) + ... .

Эта формула позволяет быстро составить довольно длинную таблицу чисел p(n). Вот практический совет, как это сделать. Возьмите лист клетчатой бумаги – лучше всего двойной тетрадный лист. Отрежьте вдоль его длинной стороны полоску шириной 3–4 клетки. Положите эту полоску перед собой вертикально и у левого среза в нижней клетке поставьте какой-нибудь знак, скажем звёздочку. Затем, двигаясь вверх, поставьте в первой клетке +, во второй +, в пятой –, в седьмой –, в двенадцатой +, в пятнадцатой + и т.д., насколько хватит длины полоски (рис. 1). Оставшуюся часть листа также положите перед собой вертикально и, отступя 10–15 клеток от её левого среза, проведите на ней вертикальную черту – сверху донизу. В клетки, прилегающие к черте слева, двигаясь сверху вниз, впишите уже известные вам числа p(n), начиная с p(0): 1, 1, 2, 3, 5, 7. Чтобы найти следующее значение, приложите отрезанную полоску справа к вертикальной черте так, чтобы звёздочка оказалась против первой пустой клетки. Теперь из суммы чисел, стоящих против плюсов, вычтите сумму чисел, стоящих против минусов. Что получится – впишите в клетку против звездочки: это – следующее значение функции p(n). Опустите полоску на одну клетку вниз и повторите то же самое. И так далее. Через несколько минут вы получите колонку чисел p(n) высотой в ваш лист.

Рис. 1 Рис. 2

Пользуясь этим рецептом, я нашел числа p(n) для n ≤ 50. На это потребовалось – честно, по часам – 17 минут. (Несколько первых шагов вычисления я привожу на рисунке 2; красные числа – это новые значения p(n).) В частности,

p(50) = 204226.

Представьте себе, сколько потребовалось бы времени для нахождения этого числа кустарным способом!


Информация о работе «О раскрытии скобок, об Эйлере, Гауссе, Макдональде и об упущенных возможностях»
Раздел: Математика
Количество знаков с пробелами: 23569
Количество таблиц: 25
Количество изображений: 0

0 комментариев


Наверх