Трапеция. Часть 4

В 9 часов утра уже начал всерьёз штурмовать эту сложнейшую задачу. Программа давалась с трудом. Много формул, много ограничений. К тому же нужен был блок исключения кратных вариантов. Ведь в бэйсике не предусмотрена команда gcd() как в Вольфраме Альфа, или команда igcd() как в математическом монстре Maple. Я ведь планировал искать варианты, где числа доходят до величин 1000 и больше. В результате одолел задачу! Текст проги:

n=20
for c=1 to n
for d=c to n
for d1=1 to n
for d2=1 to n
k1=(c^2-d1^2)^2
k2=(d^2-d2^2)^2
k3=c^2-d^2+d1^2-d2^2
k4=(c^2-d2^2)^2
k5=(d^2-d1^2)^2
k6=c^2-d^2-d1^2+d2^2
if (k1-k2)/k3>0 then
if (k4-k5)/k6>0 then
a=sqrt((k1-k2)/k3/2)
if a=int(a) then
b=sqrt((k4-k5)/k6/2)
if b=int(b) then
if d1^2+d2^2=2*a*b+c^2+d^2 then
if b-c-d<a then
if b>a then
if d+d1>b then
if d1>d-b then
rem --------------------------
t=0:k=0
for i=2 to 10
if a/i=int(a/i) then t=t+1:fi
if b/i=int(b/i) then t=t+1:fi
if c/i=int(c/i) then t=t+1:fi
if d/i=int(d/i) then t=t+1:fi
if d1/i=int(d1/i) then t=t+1:fi
if d2/i=int(d2/i) then t=t+1:fi
if t=6 then k=6:fi
t=0
next i
rem --------------------------
if k<>6 then
s=s+1
print s,a,b,c,d,d1,d2
fi:fi:fi:fi:fi:fi:fi:fi:fi:fi
next d2
next d1
next d
next c

Все варианты в заданном интервале (но без ограничений по совпадениям размеров) таковы:

1 3 8 9 11 9 13
2 8 13 9 11 11 17
3 10 14 9 11 11 19

4 8 16 9 11 13 17
5 5 16 9 13 11 17
6 5 8 11 13 9 17

7 8 12 11 13 11 19
8 6 14 11 13 13 17

Первая колонка - номер строки. Видно, что варианты 4, 5, 6 полностью удовлетворяют условиям задачи. Приближенные эскизы трапеций показаны на рисунке.

10 февраля 2021 г.


Рецензии