Files
freeCodeCamp/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-422-sequence-of-points-on-a-hyperbola.md

55 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: 5900f5131000cf542c510025
title: 'Задача 422: Послідовність точок на гіперболі'
challengeType: 5
forumTopicId: 302092
dashedName: problem-422-sequence-of-points-on-a-hyperbola
---
# --description--
Нехай $H$ - це гіпербола, визначена рівнянням $12x^2 + 7xy - 12y^2 = 625$.
Визначте $X$ як точку з координатами (7, 1). Можна побачити, що $X$ знаходиться в $H$.
Тепер визначимо послідовність точок у $H, \\{P_i : i ≥ 1\\}$, як:
- $P_1 = (13, \frac{61}{4})$.
- $P_2 = (\frac{-43}{6}, -4)$.
- Для $i > 2$, $P_i$ є унікальною точкою в $H$, яка відрізняється від $P_{i - 1}$. Таким чином лінія $P_iP_{i - 1}$ паралельна до лінії $P_{i - 2}X$. Можна показати, що $P_i$ є добре визначеною і її координати завжди раціональні.
<img class="img-responsive center-block" alt="анімація, що показує точки від P_1 до P_6" src="https://cdn.freecodecamp.org/curriculum/project-euler/sequence-of-points-on-a-hyperbola.gif" style="background-color: white; padding: 10px;" />
Дано, що $P_3 = (\frac{-19}{2}, \frac{-229}{24})$, $P_4 = (\frac{1267}{144}, \frac{-37}{12})$ and $P_7 = (\frac{17\\,194\\,218\\,091}{143\\,327\\,232}, \frac{274\\,748\\,766\\,781}{1\\,719\\,926\\,784})$.
Знайдіть $P_n$ для $n = {11}^{14}$ у такому форматі: Якщо $P_n = (\frac{a}{b}, \frac{c}{d})$, де дроби - найнижчі значення, а знаменники додатні, то відповіддю є $(a + b + c + d)\bmod 1\\,000\\,000\\,007$.
Для $n = 7$ відповідь була б такою: $806\\,236\\,837$.
# --hints--
`sequenceOfPointsOnHyperbola()` повинен повернути `92060460`.
```js
assert.strictEqual(sequenceOfPointsOnHyperbola(), 92060460);
```
# --seed--
## --seed-contents--
```js
function sequenceOfPointsOnHyperbola() {
return true;
}
sequenceOfPointsOnHyperbola();
```
# --solutions--
```js
// solution required
```