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

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

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

Длина стороны [latex]a[/latex], и радиус шаров [latex]r[/latex].

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

Число [latex]n[/latex], количество шаров.

Изображение.

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

Тесты.

Входные данные Выходные данные
[latex]a[/latex] [latex]r[/latex] [latex]n[/latex]
1 2 0.33 3
2 5 0.33 19
3 10 1 8
4 10 2 2
5 10 2.88 1
6 10 2.90 0
7 10 3 0

Код.

 

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

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

Ccылка на решение задачи на сайте Ideon.com http://ideone.com/3LTMnW

Герман Веранян
Герман Веранян

Latest posts by Герман Веранян (see all)

One thought on “ML 35. Бильярдные шары

  1. Хорошо, но есть мелкие замечания.
    — Не используйте символы кириллицы в постоянных ссылках. Это часто создаёт проблемы.
    — Добавьте ключевые слова для поисковых машин (метки).
    — S1 это так — [latex]S_1[/latex].
    И одно существенное замечание
    — Вы пишите «нужно понимать что каждый шар занимает пространство вокруг себя которое равняется площади описанного вокруг данного шара треугольника». Чтобы это понять нужно сначала это доказать или хоть как-то обосновать. Вы очень хорошо свели трёхмерный случай к плоскому, но дальше нужно обосновывать рассуждения. Кстати, задача, которую Вы решаете относится к группе задач на упаковку кругов на плоскости (Circle packing). Она стоит того, чтобы поискать информацию в сети или в журналах «Квант».

Добавить комментарий