Files
freeCodeCamp/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-415-titanic-sets.md
2022-01-23 00:08:20 +09:00

1.4 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5900f50c1000cf542c51001e 問題 415: タイタニック集合 5 302084 problem-415-titanic-sets

--description--

格子点の集合 S に含まれる格子点のうちちょうど 2 点を通る直線がある場合、その格子点の集合 S をタイタニック集合と呼びます。

タイタニック集合の例を挙げます。S = \\{(0, 0), (0, 1), (0, 2), (1, 1), (2, 0), (1, 0)\\} ここで、(0, 1) と (2, 0) を通る線は S の他のいずれの点も通りません。

一方、集合 {(0, 0), (1, 1), (2, 2), (4, 4)} はタイタニック集合ではありません。なぜなら、集合内のいずれの 2 点を通る線も、さらに他の 2 点を通るからです。

任意の正の整数 N について、すべての点 (x, y) が 0 ≤ x, y ≤ N を満たすようなタイタニック集合 S の数を T(N) とします。 T(1) = 11, T(2) = 494, T(4) = 33\\,554\\,178, T(111)\bmod {10}^8 = 13\\,500\\,401, T({10}^5)\bmod {10}^8 = 63\\,259\\,062 であることを確認できます。

T({10}^{11})\bmod {10}^8 を求めなさい。

--hints--

titanicSets()55859742 を返す必要があります。

assert.strictEqual(titanicSets(), 55859742);

--seed--

--seed-contents--

function titanicSets() {

  return true;
}

titanicSets();

--solutions--

// solution required