Пифагоровы тройки чисел
С древних времен известно, что треугольник с размерами сторон 3, 4, 5 является прямоугольным. Его называют Египетским, потому, что еще в древнем Египте для построения прямого угла на поверхности (при строительстве зданий, разметке полей и пр.) брали веревку с узлами на равном расстоянии друг от друга и строили с ее помощью такой треугольник.
Согласно теореме Пифагора, для прямоугольных треугольников имеет место равенство:
Для Египетского треугольника:
Очевидно, что пропорциональное увеличение сторон такого треугольника дает бесконечное множество подобных треугольников или бесконечное множество троек чисел, для которых выполняется равенство (1). Такие тройки стали называть пифагоровыми тройками.
Естественно задать следующий вопрос: существуют ли еще такие тройки чисел, отличные от описанных в формуле (2) (то есть, существуют ли прямоугольные треугольники с целочисленными сторонами не подобные египетскому). Ответ утвердительный. Таких троек бесконечно много. Для их нахождения используются методики, описанные в математических трудах по теории чисел. Мы, однако, поставим задачу нахождения таких троек с помощью компьютерной программы. Для ее разработки используем некоторые очевидные свойства пифагоровых троек. Для левой части уравнения (1) справедливо:
- x, y не должны иметь общих делителей, то есть они должны быть взаимно простыми, отсюда следствия:
- если одно из чисел, (например, x) нечетно;
- тогда другое (y), должно быть четным.
Автором на простом языке QBasic написана программа 1, которая определяет и выводит на экран пифагоровы тройки для x, y в диапазоне {3...100}:
|
Результат работы программы 1 |
Рассмотрим устройство программы «Пифагоровы тройки». После очистки экрана оператором CLS организуются вложенные циклы с изменением x от 3 до 100 с шагом 2 и y от 4 до 100 с шагом 2. Далее выполняется вычисление z = sqr(x*x + y*y).В следующей строке с помощью операции выделения целой части числа INT(z) проверяется целочисленность z и, если z нецелое, происходит переход по метке 1 к следующему значению у. Если z целое, выполняется следующая строка программы в которой переменной m присваивается значение меньшего из чисел x, y (строка IF x < y THEN m = x ELSE m = y). Далее организуется цикл с изменением переменной i от 2 до m \ 2 + 1 и в строке IF x MOD i = 0 AND y MOD i =0 THEN 1 определяется наличие общих делителей у чисел x, y (если у чисел есть общий делитель i, происходит переход по метке 1 на следующее значение y). Если числа x, y взаимно простые, на экран выводится пифагорова тройка чисел x, y, z.
Продолжим наши исследования, для этого создадим программу 2, которая будет не только находить пифагоровы тройки, но и представлять их на координатной плоскости [x, y] в виде точек белого цвета на черном фоне. Программу создадим в среде Visual Basic. За основу возьмем программу, созданную на языке QBasic. Установим диапазоны значений x, y на {3…500•mass}, введем в меню выбор масштаба построения mass 1:1 … 1:32.
Код события, которое наступает при выборе в меню пункта «Пуск»:
|
Выбор масштаба простроения |
Результат работы программы 2 (масштаб 1:8)
Рассматривая построения в разных масштабах видишь, что точки, обозначающие значения x, y образуют на координатной плоскости пересекающиеся дугообразные структуры. Это может означать, что существуют формулы по которым можно вычислять значения x, y пифагоровых троек.
Представляет интерес появление в масштабе 1:32 четко видимых круговых структур из точек:
Увеличенный фрагмент |
Так как каждая белая точка на координатной плоскости соответствует паре целых координат x, y у которых z также целое число, можно представить эти точки как концы отрезков имеющих начало в точке (0,0) и имеющего длину z, то есть целочисленное значение. Изменим программу 2 так, чтобы она выводила на экран пифагоровы тройки в виде таких векторов. Для этого заменим строку:
PSet (x / mass + 5, y / mass + 5), RGB(255, 255, 255) на:
Line (x / mass + 5, y / mass + 5)-(0+5,0+5), RGB(x mod 255, y mod 255, z mod 255)
Ниже показан результат работы такой программы в масштабе 1:1 ( в ней для большей наглядности цвет векторов зависит от значений x, y, z).
Можно сказать, что мы видим структуру плоских векторов с целочисленными координатами и длиной.
Для большей наглядности снова изменим программу 2, а именно: установим диапазон значений x, y {3...50}; выведем на экран точки с целочисленными координатами (точки белого цвета на черном фоне); установим цвет векторов - голубой. В результате работы программы мы увидим как среди множества точек с целочисленными координатами выделяются точки, соответствующие векторам с целочисленной длиной (они обозначены красными окружностями):
На этом исследования пифагоровых троек с помощью компьютерного моделирования я заканчиваю, хотя как всякое математическое исследование, оно может быть продолжено. Можно попытаться ответить на такие вопросы:
как изменяется плотность точек с координатами x, y с увеличением диапазона (на последнем рисунке видно, что из 50*50=2500 точек с целочисленными координатами имеется 15 пифагоровых троек), а на предыдущих рисунках видно, что с увеличением значений x,y пифагоровы тройки встречаются все реже;
какой математический смысл имеет расположение точек, соответствующих пифагоровым тройкам в виде семейств пересекающихся дуг;
исследовать на компьютере аналоги пифагоровых троек в пространстве, то есть целочисленные решения уравнения вида: