1. time traveller travels back in time and places his ball next to the original ball A, calling it ball B (even though they are the same ball)
2. The change in the past means that there are now two balls existing together. For Einsteins conservation of energy to hold true, one of these balls MUST be destroyed before the point in time where the time traveller (the time-traveller, or ANY time traveller) is able to take this ball and travel back in time with it to a point in time where the two balls exist together, and place his ball, next to original balls A and B calling it ball C.
3. The change in the past means that there are now three balls existing together. For Einsteins conservation of energy to hold true, one of these balls MUST be destroyed before the point in time where the time traveller (the time-traveller, or ANY time traveller) is able to take this ball and travel back in time with it to a point in time where the three balls exist together, and place his ball, next to original balls A, B and C calling it ball D.
and so on ...... So the same person could, if he/she willed, create a loop in time where an infinite number of balls were produced.
Change the balls to apples, and we just solved the problem of world hunger ;)
The algorithm could look like this;
startTimeTravelRecusiveLoop() { wait(till year 2010) // assumes the person involved will ALWAYS want to perform this action of time-travel if (at least 1 ball exists) { takeBallToYear(person, 2009, ball); } } takeBallToYear(Person personInvolved, int year, Object ball) { int currentYear = getCurrentTime(); travelTime(year); takeBallToSelf(ball) startThread(startTimeTravelRecusiveLoop()); travelTime(currentYear); }