Смекни!
smekni.com

О раскрытии скобок, об Эйлере, Гауссе, Макдональде и об упущенных возможностях (стр. 1 из 3)

Д. Фукс

Сколько раз каждому из вас доводилось раскрывать скобки в произведении? Тысячи, а может быть, десятки тысяч? Если и есть в этом занятии что-нибудь привлекательное, так это надежда, что результат умножения, после приведения подобных членов, примет благоприятный вид, как, скажем,

(a + b)(a – b) = a2 – b2,

(1 – a)(1 + a + ... + an ) = 1 – an+1.

Ниже пойдёт речь о подобных равенствах, только гораздо менее очевидных и гораздо более глубоких. Они составляют результат более чем двухсотлетней работы крупнейших математиков мира. Своим читателям я посоветую вооружиться ручкой и бумагой и повторять за мной все выкладки: это поможет не только понять содержание статьи, но и оценить степень нетривиальности её результатов.

1. Тождество Эйлера

В середине XVIII века – дело было в 1748 году или несколькими годами раньше – Леонард Эйлер заинтересовался коэффициентами многочлена

φn(x) = (1 – x)(1 – x2)(1 – x3)...(1 – xn).

Он раскрыл скобки в произведении – и получил поразительный результат. Проделаем эту выкладку и мы:

φ1(x) = 1 – x ,
φ2(x) = 1 – x – x2 + x3 ,
φ3(x) = 1 – x – x2 + x4 + x5 – x6 ,
φ4(x) = 1 – x – x2 + 2x5 – x8 – x9 + x10 ,
φ5(x) = 1 – x – x2 + x5 + x6 + x7 – x8 – x9 – x10 ... ,
φ6(x) = 1 – x – x2 + x5 + 2x7 – x9 – x10 ... ,
φ7(x) = 1 – x – x2 + x5 + x7 + x8 – x10 ... ,
φ8(x) = 1 – x – x2 + x5 + x7 + x9 ... ,
φ9(x) = 1 – x – x2 + x5 + x7 + x10 ... ,
φ10(x) = 1 – x – x2 + x5 + x7 ... .

Многоточия обозначают части многочленов φn(x), содержащие x в степенях, больших 10 (выписать эти многочлены полностью не позволяет формат журнала: многочлен φ10(x), например, имеет степень 55).

Начнём с очевидного, но важного наблюдения: коэффициенты многочлена φn(x) с ростом n «стабилизируются», то есть каждый из них начиная с некоторого n не меняется. Это легко объяснить: переход от φn–1(x) к φn(x), состоящий в умножении на 1 – xn, не оказывает никакого воздействия на коэффициенты при 1, x, ..., xn–1, так что при n > k коэффициент при xk в многочлене φn(x) от n не зависит. (Например, вычисленная часть многочлена φ10(x) не изменится, если вместо φ10 взять φ11, φ12 и т.д.) Ввиду этого мы можем говорить о «бесконечном произведении»

φ(x) = (1 – x)(1 – x2 )(1 – x3 )(1 – x4 )...,

понимая под этим, конечно, не многочлен, а степенной ряд, то есть выражение вида

a0 + a1x + a2x2 + a3x3 + a4x4 + ...,

где a0, a1, a2, a3, a4... – числа; в нашем случае a0, a1, a2, a3, a4 – стабилизирующиеся коэффициенты. Наше вычисление показывает, что

a0 = a5 = a7 = 1,a1 = a2 = –1,a3 = a4 = a6 = a8 = a9 = a10 = 0.

φ(x) называется функцией Эйлера.

Слово «функция» здесь употреблено не случайно: при –1 < x < 1 значения φ(x) можно вычислить (подобно тому, как вычисляют сумму бесконечной геометрической прогрессии).

Теперь – главное. После раскрытия наших скобок очень многое уничтожается, можно сказать – почти всё. Например, результат раскрытия скобок в произведении (1 – x)(1 – x2 )...(1 – x10 ) содержит до приведения подобных 43 слагаемых с x в степенях, меньших или равных 10, в том числе 24 слагаемых с x в степенях 8, 9, 10. После приведения подобных из этих 43 слагаемых остаётся всего 5, в том числе ни одного с x в степенях 8, 9, 10. Более точно, как мы видели, среди коэффициентов a0, a1, a2, ..., a10 три равны 1, два равны –1 и шесть равны 0. Выскажем осторожную гипотезу: коэффициенты ak всегда равны 0, 1 или –1, причём большинство из них равно 0. Дальнейшее вычисление, которое читатель при желании сможет провести сам, не только подтверждает эту гипотезу, но и позволяет её уточнить. Вот, например, часть ряда φ(x), содержащая x в степенях, не превосходящих 100:

φ(x) = 1 – x – x2 + x5 + x7 – x12 – x15 + x22 + x26 –
– x35 – x40 + x51 + x57 – x70 – x77 + x92 + x100...

Надо полагать, что Эйлер, который не боялся длинных выкладок и отменно считал, примерно столько членов ряда φ(x) и вычислил. А потом он просто не мог не заметить, что коэффициенты, отличные от 0, равны 1 или –1, и при этом единицы и минус единицы расположены не как попало, а в строго определённом порядке: две единицы, две минус единицы, две единицы, две минус единицы и т.д. (Мемуар Эйлера на эту тему полностью приведён в книге Д.Пойа «Математика и правдоподобные рассуждения» (М., «Наука», 1975, с.111). Чтение этого мемуара, как и других глав книги Пойа, несомненно, доставит вам большое удовольствие.) В таблице выписаны показатели степеней x, при которых стоят ненулевые коэффициенты.

показатели 1, 2 5, 7 12, 15 22, 26 35, 40 51, 57 70, 77 92, 100
коэффициенты –1 1 –1 1 –1 1 –1 1

Легко угадать, что это за показатели: в n-м столбце нашей таблицы в верхней строке стоят числа ½(3n2 – n), в нижней – число (–1)n. Если это так при всех n, мы приходим к равенству

(1 – x)(1 – x2)(1 – x3)... = 1 – x – x2 + x5 + x7 – ... +
+ (–1)n x½(3n² – n) + (–1)n x½(3n² + n) + ...

или, пользуясь принятой в математике сокращённой символикой,

(1 – xn) = 1 + (–1)n ( x½(3n² – n) + x½(3n² + n) ).
n=1 n=1

Это и есть тождество Эйлера. Последующие поколения математиков дали этому тождеству несколько доказательств. Одно из них приводится в п. 3. (Читатель, который больше интересуется фактами, чем доказательствами, без ущерба для понимания дальнейшего может этот параграф пропустить.) А сейчас я расскажу об одном замечательном применении тождества Эйлера, которое украшает все учебники комбинаторики.

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) высотой в ваш лист.