Опять вирусная задача. Ч 1

Дан треугольник ABC  с медианой BM. Заданы углы t1 ,  t2 и торона "a". Найти требуется основание треугольника икс.
Систему из трех уравнений (по теореме синусов) составил за пару минут. Но потом задача поплыла. Общее выражение хотя бы для угла В получалось столь грандиозным, что тут же забросил и применил свой излюбленный метод Монте Карло.
Какое же это чудо! Данный метод спасал меня десятки, если не сотни раз за долгую научно-исследовательскую жизнь. Вот и сейчас: программу написал играючи на коленке со скоростью пулемета. При этом не сделал ни одной опечатки. Запустил ее и через пару десятков секунд высветился ответ тестового примера. При t1=15 град, t2=45 град и s=sqrt(2). Текст проги

rem Вирусная задача дано t1,t2,a
rem проведена медиана
rem Найти основание x
s=10^20
a=sqrt(2):t1=pi/12:t2=pi/4
z=0.0001
x0=1.5:B0=pi/6:c0=4
for i=1 to 10000000
x=x0*(1+z*(ran()-.5))
B=B0*(1+z*(ran()-.5))
c=c0*(1+z*(ran()-.5))
z1=abs(x-2*a*sin(B-t1)/sin(t2))+
abs(x-2*c*sin(t1)/sin(t2))+
abs(x-a*sin(B)/sin(t2-t1))
if z1<s then s=z1:x0=x:B
0=B:c0=c
print x,B*180/pi,c,s
fi
if s<1/10^6 then z=0.00000001:fi
next i

В результате получил  x=2 ; B=45 град, с=2.73205.  Точность результата меня вполне устроила - она оказалась равной 0.000000000001 (десять в минус двенадцатой степени).
В иллюстрации в рамочке показано тригонометрическое тождество, из которого можно найти угол B. Но и такое простенькое выражение оказалось мне не по зубам.
Потому-то задача эта вирусная!

11 мая 2023 г.


Рецензии