ML23

Условие

Найти длины биссектрис [latex]a_1[/latex], [latex]b_1[/latex], [latex]c_1[/latex] треугольника, если известны длины противоположных сторон [latex]a[/latex], [latex]b[/latex], [latex]c[/latex].

Тестирование

Входные данные Выходные данные
1 6, 7, 9 7.35803, 6.49923, 4.67652
2 3.5, 4.5, 5.5 4.66027, 3.79967, 2.88195
3 100000, 100000, 100000 86602.5, 86602.5, 86602.5
4 1, 1.118034, 1.118034 1, 0.898056, 0.898056

Код

Решение

Для вычисления длины биссектрисы через три стороны произвольного треугольника воспользуемся формулой [latex]l_c = \frac{\sqrt{ab(a+b+c)(a+b-c)}}{a+b}[/latex], где:

  • [latex]l_c[/latex] — длина биссектрисы, проведенной к стороне [latex]c[/latex];
  • [latex]a[/latex], [latex]b[/latex], [latex]c[/latex] — стороны треугольника.

Формула достаточно громоздкая, а так как использовать мы ее будем трижды — для вычисления длины каждой из биссектрис, — имеет смысл написать функцию, которая бы получала длины трех сторон треугольника и возвращала длину биссектрисы, проведенной к первой из указанных сторон:

Можно заметить, что сумма [latex]a+b[/latex] встречается в формуле три раза. Для лучшей читаемости и компактности кода заменим a + b  на s :

Наконец, в главной функции после получения длин сторон треугольника остается вывести длины самих биссектрис. Для этого используем вышеописанную функцию getL , каждый раз меняя первый параметр (при этом порядок двух других не имеет значения):

Ссылки

Код программы на Ideone.com;

Формулы длины биссектрис в треугольнике;

Список задач на линейные вычисления.

Related Images:

Ю1.24

Задача. Треугольник задается координатами вершин на плоскости: [latex]A(x_{1},y_{1}), B(x_{2},y_{2}), C(x_{3},y_{3})[/latex]. Найти точку пересечения биссектрис [latex] I(x,y)[/latex]  треугольника [latex]ABC[/latex] (центр вписанной в него окружности).

 

Тесты:

 
[latex]x_{1}[/latex] [latex]y_{1}[/latex] [latex]x_{2}[/latex] [latex]y_{2}[/latex] [latex]x_{3}[/latex] [latex]y_{3}[/latex] [latex]x[/latex] [latex]y[/latex] Комментарий
0 4 3 0 0 0 1.00 1.00 Пройден
0 -4 -3 0 0 0 -1.00 -1.00 Пройден
-5 -1 0 -13 -5 -13 -3.00 -11.00 Пройден
1 1 5 1 3 4 3.00 2.07 Пройден

Код на С

Код на Java

Решение:

Для нахождения координат биссектрисы воспользуемся формулами :

[latex]x=\frac{ax_{1}+bx_{2}+cx_{3}}{a+b+c}[/latex],

[latex]y=\frac{ay_{1}+by_{2}+cy_{3}}{a+b+c}[/latex] ,

где [latex] a [/latex]-длина стороны [latex]CB[/latex], [latex]b[/latex]-длина стороны [latex]AC[/latex], [latex]c[/latex]-длина стороны [latex]AB[/latex].

 

Для этого необходимо предварительно найти длины сторон по формуле :

[latex] AB=\sqrt{(x_{1}-x_{2})^{2}+(y_{1}-y_{2})^{2}} [/latex], где [latex] A(x_{1},y_{1}), B(x_{2},y_{2}) [/latex].

Related Images: