Полезно помнить, что высота тупоугольного треугольника, проведенная из вершины острого угла, расположена ВНЕ треугольника и пересекает продолжение стороны. к которой проведена.
* * *
В равнобедренном треугольнике с углом при вершине, равным 120°, углы при основании равны (180°-120°):2=30°
Обозначим высоту, проведенную к основанию, ВН. По условию ВН=10.
В прямоугольном ∆ АВН гипотенуза АВ=ВН:sin30°=20
В прямоугольном ∆ ВDС угол CBD=60° (смежный углу АВС). ⇒
угол ВСD=30°,
В ∆ АВС стороны ВС=АВ=20 см, ⇒ BD=BC•sin30°=20•0,5=10 см
Первое из этих решений я нашел еще в начальной школе на олимпиаде по математике, и теперь подумав, что, может быть, та победа повлияла на мое будущее становление, я решил воздать должное этой задаче и найти все возможные решения, написав соответствующий скрипт на Python.
Пусть задача поставлена так: есть строка цифр 123456789 (пусть я и правда не очень интересуюсь нулем), между которыми можно в любых местах поставить 4 арифметических операции (+, -, *, /) или не ставить ничего (то есть ставить пустую строку, тогда образуются двух- и более -значные числа) так, чтобы общее выражение давало в результате 100, как в примерах из книги выше. Ничего другого нельзя, никаких скобок, никаких перестановок, никаких дублей, никаких выкидываний.
Я не учился программированию, и реализовал задачу, как придумал. Поэтому у меня есть вопрос: Как это можно было сделать лучше?