Земсков опять обнищал Ч. 1

С Новым Годом, друзья!

Чуть ли в новогоднюю ночь с 2022 до 2023  Петр Земсков выдал еще одну задачу, которую даже не стал сам решать. Надоело ему вращать треугольнички, чтобы получить либо правильный треугольник, либо какой-нибудь ромбик. И это вместо того, чтобы воспользоваться прекрасными теоремами. Синусов или косинусов.
Ссылка на его видео в ютубе:

https://www.youtube.com/watch?v=tT0c6_20xf8

А тут ведь всего-то достаточно записать следующие выражения:

d=sqrt(2-2*cos(B))
a=sqrt(d^2+1-2*d*cos(A-(pi-B)/2))
x1=180/pi*asin(d/a*sin(A-(pi-B)/2))
x2=180/pi*acos((1+a^2-d^2)/(2*a))

Причем две последние строки - дают одинаковые результаты. Неизвестный угол х1 найден  по теореме синусов, а х2 - по теореме косинусов. Составил простенькую программу и нашел правильные равные значения углов х1 и х2. Хороший контроль, между прочим! Всего оказалось 56 вариантов целочисленных значений. В иллюстрации привел первые 20 вариантов. Вся эта работа заняла у меня не более получаса, причем за завтраком.

Дело же в том, что давно пришла пора подобные простые геометрические задачи решать именно в общем виде и находить наиболее интересные варианты. На рисунке дана выведенная общая формула и несколько (точнее первые двадцать) вариантов. Первая строка таблицы - как раз то, что Земсков предлагал рассчитать в итоге. Но я дал еще дополнительные вещи, а именно четвертый угол "y", диагональ d и сторону "а".
Совершенствуйтесь, Знаменитый Одиозный Дед!

Подруга из далёкого Сиднея просит привести тут текст проги, которая дает все варианты таблицы. Выполняю её просьбу. Может быть еще кому-нибудь это понадобится:

rem численный раcчёт целочисленных углов в градусах
for A0=1 to 179
for B0=1 to 179
A=A0/180*pi
B=B0/180*pi
d=sqrt(2-2*cos(B))
a=sqrt(d^2+1-2*d*cos(A-(pi-B)/2))
x1=180/pi*asin(d/a*sin(A-(pi-B)/2))
x2=180/pi*acos((1+a^2-d^2)/(2*a))
y=360-A0-B0-x1
if x1=x2 then
if x1<>0 then
if x1<180 then
if y<179.5 then
if abs(x1+0.000000001-int(x1))<0.000001 then
print A0 using "#####";print B0 using "###";
x1 using "###",y using "###";
print d using "##.#####",a using "##.####"
fi:fi:fi:fi:fi
next B0
next A0

Тут 56 вариантов. Не уверен, что это полный набор. Если кто в теме и найдет ещё решения, то с удовольствием продолжу тему.

5 января 2023 г.


Рецензии