Два отрезка гипотенузы и квадрат
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 г.
Свидетельство о публикации №222111000822