Say, that we have the following observational data: The minimal, the maximal distance between a planet and the Sun (both in thousands of kilometres) and the number of (Earth) days for one revolution around the Sun.
Planet | Aphelion 000 km | Perihelion 000 km | Orbit time days |
---|---|---|---|
Mercury | 69,816 | 46,001 | 88 |
Venus | 108,942 | 107,476 | 225 |
Earth | 152,098 | 147,098 | 365 |
Mars | 249,209 | 206,669 | 687 |
Jupiter | 816,520 | 740,573 | 4,332 |
Saturn | 1,513,325 | 1,353,572 | 10,760 |
Uranus | 3,004,419 | 2,748,938 | 30,799 |
Neptune | 4,553,946 | 4,452,940 | 60,190 |
Pluto | 7,311,000 | 4,437,000 | 90,613 |
Above is only the empirical data and no binding algorithm among the three quantities. The celestial mechanics rules which go by the name of the Kepler’s laws. Can those rules be (re)invented by a computer program and how? After several hours the following C code has been evolved:
aphelion=perihelion+aphelion;
aphelion=aphelion+aphelion;
aphelion=aphelion+aphelion;
guess=12;
aphelion=aphelion>>guess;
temp=aphelion/guess;
aphelion=aphelion-temp;
dif=sqrt(aphelion);
aphelion=guess|aphelion;
aphelion=aphelion*dif;
aphelion=guess^aphelion;
guess=aphelion/guess;
More about it on LessWrong