ML26. Площадь треугольника

Условие
Найти площадь треугольника по заданным координатам его вершин $ A\left(x_a,y_a,z_a\right), B\left(x_b,y_b,z_b\right) $ и $ C\left(x_c,y_c,z_c\right) $.

Входные данные
Координаты вершин треугольника $ ABC $.

Выходные данные
Площадь $ S $ треугольника $ ABC $.

Тесты.

Входные данные Выходные данные
$ x_a $ $ y_a $ $ z_a $ $ x_b $ $ y_b $ $ z_b $ $ x_c $ $ y_c $ $ z_c $ $ S $
1 -2 1 2 3 -3 4 1 0 9 19.78635893740938
2 -3 13 -5 6 11 12 4 8 18 50.5618433208284
3 0 0 1 1 0 0 0 1 0 0.8660254037844389
4 0.5 0.5 1.5 1.5 0.5 0.5 0.5 1.5 0.5 0.8660254037844389

Решение.

Данную задачу можно решить, используя формулу Герона:
$ S = \sqrt{p \left(p — a\right) \left(p — b\right) \left(p — c\right)} $,
где $ a, b $ и $ c $ — длины сторон треугольника, а $ p $ — полупериметр, который вычисляется по формуле $ p = \frac{a + b + c}{2} $.
Для вычисления длины стороны треугольника используем формулу для определения расстояния между точками:
$ AB = \sqrt{\left(x_b — x_a\right)^2 + \left(y_b — y_a\right)^2 + \left(z_b — z_a\right)^2} $.

Код программы

Ссылка на tryhaxe

ML 35. Бильярдные шары

Ссылка на условие задания: cpp.mazurok.com

Условие

Для аккуратной расстановки шаров в «пирамидку» игроки в бильярд используют специальный равносторонний треугольник. Вычислите какое наибольшее количество шаров радиуса $r$ можно расставить на бильярдном столе при помощи треугольника со стороной $a$.

Изображение

Входные данные.

Длина стороны $a$, и радиус шаров $r$.

Выходные данные.

Число $n$, количество шаров.

Код.

Решение.

Для решения данной задачи нужно понимать что каждый шар занимает пространство вокруг себя которое равняется площади описанного вокруг данного шара треугольника. Чтобы посчитать количество шаров вмещаемых в треугольник надо воспользоваться формулой площади равностороннего треугольника через сторону для большого треугольника [latex]S = \frac{a^2\sqrt{3}}{4}[/latex] , и соответственно формулой площади треугольника в который вписан круг основываясь на радиус [latex]S1 = 3\sqrt{3}x^2[/latex] В результате деления данных формул получим количество шаров радиуса $r$ которые поместятся в Треугольника со стороной $a$.

Ссылка на решение задачи на сайте Try Haxe!