ML38. Максимальный размер прямоугольника, вырезанного из круга

Задача

Какого наибольшего размера прямоугольник можно вырезать из круга диаметра d, если известно, что длины его сторон образуют золотую пропорцию.

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

Единственное число — диаметр окружности.

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

Два числа — длины сторон прямоугольника.

Рисунок 1

Тесты

Входные данные Выходные данные
[latex]d[/latex] [latex]a[/latex] [latex]b[/latex]
1 0 0 0
2 1 0.850651 0.525731
3 2 1.7013 1.05146
4 21 17.8638 11.0404
5 0.32 0.272208 0.168234
6 1.7 1.44611 0.893743
7 134 113.981 70.448

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

Выполнение кода на Try Haxe !

Решение

Прямоугольник будет иметь наибольший размер в случае, когда его вершины лежат на окружности. Тогда, очевидно, диаметр окружности будет диагональю данного прямоугольника. Согласно условию, длины его сторон образуют золотую пропорцию. Это означает, что [latex]\frac { a }{ b } =\phi [/latex], где [latex]a[/latex] — длина большей стороны прямоугольника, [latex]b[/latex] — длина его меньшей стороны, а [latex]\phi=\frac { 1+\sqrt { 5 } }{ 2 } [/latex]. Отсюда [latex]a=b\cdot \phi[/latex]. По теореме Пифагора, [latex]{ a }^{ 2 }+{ b }^{ 2 }={ d }^{ 2 }[/latex]. Путём подстановки из предыдущего выражения и простых алгебраических преобразований получим формулу для вычисления длины меньшей стороны: [latex]b=d\cdot \sqrt { \frac { 1 }{ { \phi }^{ 2 }+1 } } [/latex].
Сначала для удобства находим значение [latex]\phi[/latex], затем — по указанным формулам длины сторон прямоугольника.

Решение этой задачи на С++.

Денис Швецов
Денис Швецов недавно публиковал (посмотреть все)

2 thoughts on “ML38. Максимальный размер прямоугольника, вырезанного из круга

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