2.5 KiB
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName |
|---|---|---|---|---|
| 5900f5381000cf542c51004b | 問題 460: 歩き回るアリ | 5 | 302135 | problem-460-an-ant-on-the-move |
--description--
ユークリッド平面上で、アリが点 A(0, 1) から点 B(d, 1) へ移動します。ここで、d は整数です。
各ステップにおいて、点 (x_0, y_0) にいるアリは、x_1 ≥ 0, y_1 ≥ 1 を満たす格子点 (x_1, y_1) のうち 1 つを選び、一定の速度 v で (x_1, y_1) に向かって直進します。 v の値は、y_0 と y_1 によって次のように決まります。
y_0 = y_1の場合、vの値はy_0に等しい。y_0 ≠ y_1の場合、vの値は\frac{y_1 - y_0}{\ln y_1 - \ln y_0}に等しい。
左側の図は、d = 4 の場合に考えられる経路の一つです。 まず、アリは A(0, 1) から P_1(1, 3) まで、速度 \frac{3 - 1}{\ln 3 - \ln 1} ≈ 1.8205 で進みます。 したがって、所要時間は \frac{\sqrt{5}}{1.820} ≈ 1.2283 です。
P_1(1, 3) から P_2(3, 3) までは速度 3 で移動するので、所要時間は \frac{2}{3} ≈ 0.6667 です。 P_2(3, 3) から B(4, 1) までのアリの移動速度は $\frac{1 - 3}{\ln 1 -\ln 3} ≈ 1.8205$なので、所要時間は \frac{\sqrt{5}}{1.8205} ≈ 1.2283 となります。
したがって、合計所要時間は 1.2283 + 0.6667 + 1.2283 = 3.1233 です。
右側の図は別の経路です。 合計所要時間は 0.98026 + 1 + 0.98026 = 2.96052 となります。 これが d = 4 に対する最速経路であることが分かっています。
アリが最速経路を選んだ場合の合計所要時間を F(d) とします。 例えば、F(4) ≈ 2.960\\,516\\,287 です。 F(10) ≈ 4.668\\,187\\,834, F(100) ≈ 9.217\\,221\\,972 であることを確認できます。
F(10\\,000) を求めなさい。 回答は、四捨五入して小数第 9 位まで示すこと。
--hints--
antOnTheMove() は 18.420738199 を返す必要があります。
assert.strictEqual(antOnTheMove(), 18.420738199);
--seed--
--seed-contents--
function antOnTheMove() {
return true;
}
antOnTheMove();
--solutions--
// solution required