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
|
||
```
|