53 lines
2.4 KiB
Markdown
53 lines
2.4 KiB
Markdown
![]() |
---
|
|||
|
id: 5900f4f71000cf542c51000a
|
|||
|
title: 'Завдання 395: Дерево Піфагора'
|
|||
|
challengeType: 5
|
|||
|
forumTopicId: 302060
|
|||
|
dashedName: problem-395-pythagorean-tree
|
|||
|
---
|
|||
|
|
|||
|
# --description--
|
|||
|
|
|||
|
Дерево Піфагора це фрактальна крива, створена за наступною процедурою:
|
|||
|
|
|||
|
Почніть з одиничного квадрата. Після цього, позначте одну із його сторін основою (у анімації нижня сторона є основою):
|
|||
|
|
|||
|
1. Прикріпіть правий трикутник до протилежної основі сторони з її гіпотенузою та співвідношенням сторін 3-4-5. Зверніть увагу, що менша сторона трикутника повинна бути праворуч від основи (погляньте на анімацію).
|
|||
|
2. Прикріпіть квадрат до кожного кута правого трикутника так, щоб сторона була дотичною з кутом.
|
|||
|
3. Повторіть процедуру для обох квадратів, беручи за основи сторони, дотичні до трикутника.
|
|||
|
|
|||
|
Отримана фігура, після безкінечної кількості повторень, є деревом Піфагора.
|
|||
|
|
|||
|
<img class="img-responsive center-block" alt="анімація показує 8 повторень процедури" src="https://cdn.freecodecamp.org/curriculum/project-euler/pythagorean-tree.gif" style="background-color: white; padding: 10px;" />
|
|||
|
|
|||
|
Може бути показано, що існує принаймні один прямокутник, чиї сторони є паралельними до найбільшого квадрата дерева Піфагора, що цілком охоплює його.
|
|||
|
|
|||
|
Знайдіть найменшу можливу площину для такого об'єднувального прямокутника та скоротіть відповідь до десяти чисел після коми.
|
|||
|
|
|||
|
# --hints--
|
|||
|
|
|||
|
`pythagoreanTree()` має вивести `28.2453753155`.
|
|||
|
|
|||
|
```js
|
|||
|
assert.strictEqual(pythagoreanTree(), 28.2453753155);
|
|||
|
```
|
|||
|
|
|||
|
# --seed--
|
|||
|
|
|||
|
## --seed-contents--
|
|||
|
|
|||
|
```js
|
|||
|
function pythagoreanTree() {
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
pythagoreanTree();
|
|||
|
```
|
|||
|
|
|||
|
# --solutions--
|
|||
|
|
|||
|
```js
|
|||
|
// solution required
|
|||
|
```
|