Два отрезка гипотенузы и квадрат

Популярная очень задача. Но всего один числовой вариант. В ютубе много разных педагогов ее разбирают. Например по ссылке:
https://www.youtube.com/watch?v=rzb4LPuzUGk
Я же решил рассмотреть на порядок более сложный вопрос. Гипотенуса составлена не просто из отрезков размером 2 и 3, а произвольным набором таких целочисленных пар отрезков. Решение принципе нашел быстро, но захотелось нырнуть в такую глубину, которую никто до сих пор не покорял. Поставил цель найти такие примитивные отрезки гипотенузы "а" и "b", при которых все стороны прямоугольного треугольника, а также сторона квадрат - тоже целые числа. Этой цели добился почти за все послеобеденное время. Сегодня утром встал и уже сходу написал прогу, отладил и сейчас пишу миниатюру. Программа такой вышла:

 rem Прямоугольный треугольник с гипотенузой a+b
dim x(1000000)
n=10000
for a=1 to n
for b=a+1 to n
k=0
x=180/pi*atan(a/b)
c=(a)*cos(atan(a/b))+0.000000000001
if abs(c-int(c))<0.000000001 then
n=n+1:x(n)=x
if n>1 then a():fi
if k=0 then
H=(a+b)*sin(atan(a/b))
L=(a+b)*cos(atan(a/b))
print a,b,x,c,L,H
fi:fi
next b
next a
sub a()
for t=1 to n-1
if x(t)=x(n) then k=1:fi
next t
end sub

Оказалось, что число примитивных решений - бесконечное количество. В таблице я вручную упорядочил варианты по возрастанию дробного угла "х". Проверял случайно выбранные строки - все оказывалось верно! На рисунке привел главную формулу расчета угла икс. Уже все остальные параметры задачи находятся по элементарным школьным формулам. Их хорошо видно в тексте проги. А формально эта программа дала такие строки:

   15    20  36.86990   12     28     21
   65   156  22.61986   60    204     85
  136   255  28.07249  120    345    184
  175   600  16.26020  168    744    217
  369  1640  12.68038  360   1960    441
  444  1295  18.92464  420   1645    564
  580   609  43.60282  420    861    820
  671  3660  10.38886  660   4260    781
 1040  4095  14.25003 1008   4977   1264
 1105  7140   8.79741 1092   8148   1261
 1484  2385  31.89079 1260   3285   2044
 2020  9999  11.42119 1980  11781   2380
 2145  3640  30.51024 1848   4984   2937
 3060  6545  25.05762 2772   8701   4068
 3471  7120  25.98923 3120   9520   4641
 3504  4015  41.11209 2640   5665   4944
 6305  6984  42.07502 4680   9864   8905
 6540  9919  33.39849 5460  13741   9060

Последовательность столбцов: a,b,x,c,L,H. Здесь "с" - сторона вписанного квадрата.
Пример на рисунке относится к первой строке этой таблицы с "a"=15 и "b"=20. Только  умноженными на кэффициент 12. То есть 15*12=180 и 20*12=240. Такой множитель выбрал c той целью, чтобы все линейные размеры в редакторе Paint удобно было строить в пикселах. Почему же именно пара числе 15 и 20 названы мной примитивными, а не 3 и 4? Дело в том, что если числа будут меньше, чем 15 и 20, то значения сторон треугольника и квадрата оказалось бы не целыми, а с одной цифрой после запятой.

10 ноября 2022 г.


Рецензии