2022-01-20 19:30:18 +00:00
|
|
|
---
|
|
|
|
id: 5900f5351000cf542c510047
|
2022-01-22 15:08:20 +00:00
|
|
|
title: '問題 456: 原点を内包する三角形 (2)'
|
2022-01-20 19:30:18 +00:00
|
|
|
challengeType: 5
|
|
|
|
forumTopicId: 302130
|
|
|
|
dashedName: problem-456-triangles-containing-the-origin-ii
|
|
|
|
---
|
|
|
|
|
|
|
|
# --description--
|
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
以下のように定義します。
|
2022-01-20 19:30:18 +00:00
|
|
|
|
2022-04-02 08:46:30 +00:00
|
|
|
$$\begin{align} & x_n = ({1248}^n\bmod 32323) - 16161 \\\\
|
|
|
|
& y_n = ({8421}^n\bmod 30103) - 15051 \\\\ & P_n = \\{(x_1, y_1), (x_2, y_2), \ldots, (x_n, y_n)\\} \end{align}$$
|
2022-01-20 19:30:18 +00:00
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
例: $$P_8 = \\{(-14913, -6630), (-10161, 5625), (5226, 11896), (8340, -10778), (15852, -5203), (-15165, 11295), (-1427, -14495), (12407, 1060)\\}$$
|
2022-01-20 19:30:18 +00:00
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
$P_n$ に含まれる点を頂点とし、かつ原点を内包するような三角形の個数を $C(n)$ とします。
|
2022-01-20 19:30:18 +00:00
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
例:
|
2022-01-20 19:30:18 +00:00
|
|
|
|
2022-04-02 08:46:30 +00:00
|
|
|
$$\begin{align} & C(8) = 20 \\\\
|
|
|
|
& C(600) = 8\\,950\\,634 \\\\ & C(40\\,000) = 2\\,666\\,610\\,948\\,988 \end{align}$$
|
2022-01-20 19:30:18 +00:00
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
$C(2\\,000\\,000)$ を求めなさい。
|
2022-01-20 19:30:18 +00:00
|
|
|
|
|
|
|
# --hints--
|
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
`trianglesContainingOriginTwo()` は `333333208685971500` を返す必要があります。
|
2022-01-20 19:30:18 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.strictEqual(trianglesContainingOriginTwo(), 333333208685971500);
|
|
|
|
```
|
|
|
|
|
|
|
|
# --seed--
|
|
|
|
|
|
|
|
## --seed-contents--
|
|
|
|
|
|
|
|
```js
|
|
|
|
function trianglesContainingOriginTwo() {
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
trianglesContainingOriginTwo();
|
|
|
|
```
|
|
|
|
|
|
|
|
# --solutions--
|
|
|
|
|
|
|
|
```js
|
|
|
|
// solution required
|
|
|
|
```
|