2. Способы генерации пифагоровых троек
Дальше рассмотрим известные способы генерации эффективных пифагоровых троек. Ученики Пифагора были первыми, кто изобрели простой способ генерации пифагоровых троек, используя формулу, части которой представляют пифагорову тройку:
m 2 + (( m 2 − 1 )/2) 2 = (( m 2 + 1 )/2) 2 ,
где m — непарное, m>2. Действительно,
Аналогичную формулу предложил древнегреческий философ Платон:
(2m) 2 + (m 2 − 1) 2 = (m 2 + 1) 2 ,
где m — любое число. Для m = 2,3,4,5 генерируются следующие тройки:
(16,9,25), (36,64,100), (64,225,289), (100,576,676).
Как видим, эти формулы не могут дать все возможные примитивные тройки.
Россмотрим следующий полином, который разкладывается на суму полиномов:
(2m 2 + 2m + 1) 2 = 4m 4 + 8m 3 + 8m 2 + 4m + 1 = =4m 4 + 8m 3 + 4m 2 + 4m 2 + 4m + 1 = (2m(m+1)) 2 + (2m +1) 2 .
Отсюда следующие формулы для получения примитивных троек:
a = 2m +1 , b = 2m(m+1) = 2m 2 + 2m , c = 2m 2 + 2m + 1.
Эти формулы генерируют тройки, в которых среднее число отличается от наибольшего ровно на единицу, то есть также генерируются не все возможные тройки. Тут первые тройки равняются: (5,12,13), (7,24,25), (9,40,41), (11,60,61).
Чтобы определить способ генерации всех примитивных троек, следует исследовать ихние свойства. Во-первых, если (a,b,c) — примитивная тройка, то a и b, b и c, а и c — должны быть взаимно простыми. Пусть a и b делятся на d. Тогда a 2 + b 2 — также делится на d. Соответственно, c 2 и c должны делиться на d. То есть, это не есть примитивная тройка.
Во-вторых, среди чисел a, b одно должно быть парным, а другое — непарным. Действительно, если a и b — парные, то и с будет парным, и числа можно поделить по крайней мере на 2. Если они оба непарные, то их можно представить как 2k+1 i 2l+1, где k,l — некоторые числа. Тогда a 2 + b 2 = 4k 2 +4k+1+4l 2 +4l+1, то есть, с 2 , как и a 2 + b 2 , при делении на 4 имеет остаток 2.
Пусть с — любое число, то есть с = 4k+i (i=0,…,3). Тогда с 2 = (4k+i) 2 имеет остаток 0 или 1 и не может иметь остаток 2. Таким образом, a и b не могут быть непарными, то есть a 2 + b 2 = 4k 2 +4k+4l 2 +4l+1 и остаток от деления с 2 на 4 должен быть 1, что значит, что с должно быть непарным.
Такие требования к элементам пифагоровой тройки удовлетворяют следующие числа:
a = 2mn, b = m 2 − n 2 , c = m 2 + n 2 , m > n, (2)
где m и n — взаимно простые с разной парностью. Впервые эти зависимости стали известными из трудов Эвклида, который жил 2300 р. назад.
Докажем справедливость зависимостей (2). Пусть а — парное, тогда b и c — непарные. Тогда c + b i c − b — парные. Их можно представить как c + b = 2u и c − b = 2v, где u,v — некоторые целые числа. Поэтому
a 2 = с 2 − b 2 = (c + b)(c − b) = 2u·2v = 4uv
и поэтому (a/2) 2 = uv.
Можно доказать от противного, что u и v — взаимно простые. Пусть u и v — делятся на d. Тогда (c + b) и (c − b) делятся на d. И поэтому c и b должны делиться на d, а это противоречит условию к пифагоровой тройке.
Так как uv = (a/2) 2 и u и v — взаимно простые, то несложно доказать, что u и v должны быть квадратами каких-то чисел.
Таким образом, есть положительные целые числа m и n , такие что u = m 2 и v = n 2 . Тогда
а 2 = 4uv = 4m 2 n 2 , так что а = 2mn; b = u − v = m 2 − n 2 ; c = u + v = m 2 + n 2 .
Так как b > 0, то m > n.
Осталось показать, что m и n имеют разную парность. Если m и n — парные, то u и v должны быть парными, а это невозможно, так как они взаимно простые. Если m и n — непарные, то b = m 2 − n 2 и c = m 2 + n 2 были бы парными, что невозможно, так как c и b — взаимно простые.
Таким образом, любая примитивная пифагорова тройка должна удовлетворять условия (2). При этом числа m и n называются генерирующими числами примитивных троек. Например, пусть имеем примитивную пифагорову тройку (120,119,169). В этом случае
а = 120 = 2·12·5, b = 119 = 144 − 25, и c = 144+25=169,
где m = 12, n = 5 — генерирующие числа, 12 > 5; 12 и 5 — взаимно простые и разной парности.
Можно доказать обратное, что числа m, n по формулам (2) дают примитивную пифагорову тройку (a,b,c). Действительно,
а 2 + b 2 = (2mn) 2 + (m 2 − n 2 ) 2 = 4m 2 n 2 + (m 4 − 2m 2 n 2 + n 4 ) = = (m 4 + 2m 2 n 2 + n 4 ) = (m 2 + n 2 ) 2 = c 2 ,
то есть (a,b,c) — пифагорова тройка. Докажем, что при этом a,b,c — взаимно простые числа от противного. Пусть эти числа делятся на p > 1. Так как m и n имеют разную парность, то b и c — непарные, то есть p ≠ 2. Так как р делит b и c, то р должно делить 2m 2 и 2n 2 , а это невозможно, так как p ≠ 2. Поэтому m, n — взаимно простые и a,b,c — тоже взаимно простые.
В таблице 1 показаны все примитивные пифагоровы тройки, сгенерированые по формулам (2) для m≤10.
Таблица 1. Примитивные пифагоровы тройки для m≤10 m n a b c m n a b c 2 1 4 3 5 8 1 16 63 65 3 2 12 5 13 8 3 48 55 73 4 1 8 15 17 8 5 80 39 89 4 3 24 7 25 8 7 112 15 113 5 2 20 21 29 9 2 36 77 85 5 4 40 9 41 9 4 72 65 97 6 1 12 35 37 9 8 144 17 145 6 5 60 11 61 10 1 20 99 101 7 2 28 45 53 10 3 60 91 109 7 4 56 33 65 10 7 140 51 149 7 6 84 13 85 10 9 180 19 181
- или a, или b делятся на 3;
- одно из чисел a,b,c делится на 5;
- число а делится на 4;
- произведение a·b делится на 12.
В 1971 г. американские математики Тейган и Хедвин для генерации троек предложили такие малоизвестные параметры прямоугольного треугольника, как его рост (height) h = c − b и избыток (success) е = a + b − c. На рис.1. показаны эти величины на некотором прямоугольном треугольнике.
Рисунок 1. Прямоугольный треугольник и его рост и избыток
Название “избыток” является производным от того, что это добавочное расстояние, которое необходимо пройти по катетам треугольника из одной вершины в противоположную, если не идти по его диагонали.
Через избыток и рост стороны пифагорового треугольника можно выразить как:
e 2 e 2 a = h + e, b = e + ——, c = h + e + ——, (3) 2h 2h
Не все комбинации h и e могут отвечать пифагоровым треугольникам. Для заданого h возможные значения e — это произведения некоторого числа d. Это число d имеет название прироста и относится к h следующим образом: d — это наименьшее положительное целое число, квадрат которого делится на 2h. Так как e кратное d, то оно записывается как e = kd, где k — положительное целое.
С помощью пар (k,h) можно сгенерировать все пифагоровы треугольники, включая непримитивные и обобщенные, следующим образом:
(dk) 2 (dk) 2 a = h + dk, b = dk + ——, c = h + dk + ——, (4) 2h 2h
причем тройка является примитивной, если k и h — взаимно простые и если h =±q 2 при q — непарном. Кроме того, это будет именно пифагорова тройка, если k > √2·h/d и h > 0.
- h = c − b;
- записывают h как h = pq 2 , где p > 0 и такое, что не является квадратом;
- d = 2pq если p — непарное и d = pq , если p — парное;
- k = (a − h)/d.
Например, для тройки (8,15,17) имеем h = 17−15 = 2·1, так что p = 2 и q = 1, d = 2, и k = (8 − 2)/2 = 3. Так что эта тройка задается как (k,h) = (3,2).
Для тройки (459,1260,1341) имеем h = 1341 − 1260 = 81, так что p = 1, q = 9 и d = 18, отсюда k = (459 − 81)/18 = 21, так что код этой тройки равняется (k,h) = (21, 81).
Задание троек с помощью h и k имеет ряд интересных свойств. Параметр k равняется
k = 4S/(dP), (5)
где S = ab/2 — площадь треугольника, а P = a + b + c — его периметр. Это следует из равенства eP = 4S, которое выходит из теоремы Пифагора.
Для прямоугольного треугольника e равняется диаметру вписаной в треугольник окружности. Это выходит из того, что гипотенуза с = (а − r)+(b − r) = a + b − 2r, где r — радиус окружности. Отсюда h = c − b = а − 2r и е = a − h = 2r.
Для h > 0 и k > 0, k является порядковым номером троек a-b-c в последовательности пифагоровых треугольников с ростом h. Из таблицы 2, где представлено несколько вариантов троек, сгенерированых парами h, k, видно, что с увеличением k возрастают величины сторон треугольника. Таким образом, в отличии от классической нумерации, нумерация парами h, k имеет больший порядок в последовательностях троек.
Таблица 2. Пифагоровы тройки, сгенерированые парами h, k. h k a b c h k a b c 2 1 4 3 5 3 1 9 12 15 2 2 6 8 10 3 2 15 36 39 2 3 8 15 17 3 3 21 72 75 2 4 10 24 26 3 4 27 120 123 2 5 12 35 37 3 5 33 180 183
Для h > 0, d удовлетворяет неравенство 2√h ≤ d ≤ 2h, в котором нижняя граница достигается при p = 1, а верхняя — при q = 1. Поэтому значение d относительно 2√h — это мера того, насколько число h отдаленное от квадрата некоторого числа.