---
id: 5900f5381000cf542c51004b
challengeType: 5
title: 'Problem 460: An ant on the move'
---

## Description
<section id='description'>
On the Euclidean plane, an ant travels from point A(0, 1) to point B(d, 1) for an integer d.


In each step, the ant at point (x0, y0) chooses one of the lattice points (x1, y1) which satisfy x1 ≥ 0 and y1 ≥ 1 and goes straight to (x1, y1) at a constant velocity v. The value of v depends on y0 and y1 as follows:
 If y0 = y1, the value of v equals y0.
 If y0 ≠ y1, the value of v equals (y1 - y0) / (ln(y1) - ln(y0)).

The left image is one of the possible paths for d = 4. First the ant goes from A(0, 1) to P1(1, 3) at velocity (3 - 1) / (ln(3) - ln(1)) ≈ 1.8205. Then the required time is sqrt(5) / 1.8205 ≈ 1.2283.
From P1(1, 3) to P2(3, 3) the ant travels at velocity 3 so the required time is 2 / 3 ≈ 0.6667. From P2(3, 3) to B(4, 1) the ant travels at velocity (1 - 3) / (ln(1) - ln(3)) ≈ 1.8205 so the required time is sqrt(5) / 1.8205 ≈ 1.2283.
Thus the total required time is 1.2283 + 0.6667 + 1.2283 = 3.1233.


The right image is another path. The total required time is calculated as 0.98026 + 1 + 0.98026 = 2.96052. It can be shown that this is the quickest path for d = 4.



Let F(d) be the total required time if the ant chooses the quickest path. For example, F(4) ≈ 2.960516287.
We can verify that F(10) ≈ 4.668187834 and F(100) ≈ 9.217221972.


Find F(10000). Give your answer rounded to nine decimal places.
</section>

## Instructions
<section id='instructions'>

</section>

## Tests
<section id='tests'>

```yml
tests:
  - text: <code>euler460()</code> should return 18.420738199.
    testString: assert.strictEqual(euler460(), 18.420738199, '<code>euler460()</code> should return 18.420738199.');

```

</section>

## Challenge Seed
<section id='challengeSeed'>

<div id='js-seed'>

```js
function euler460() {
  // Good luck!
  return true;
}

euler460();
```

</div>



</section>

## Solution
<section id='solution'>

```js
// solution required
```
</section>
