Mini-Project
Name: Jin Shen Yap
Email: actexsam@gmail.com

Question:
Three grasshoppers are on a line. Each second, one (and only one) grasshoppers hops over another. Prove that after 1985 seconds, the grasshoppers cannot be in their starting position.

In  this project, I`ll be using:

?Manipulate

?RandomChoice

?ComposeList

?Extract

?Tuples

?Take

?Union

?MemberQ

Here's how I use Mathematica:

First of all, notice that there are only two ways for three grasshopper to hop over each other.
So, we consider these two functions.

F1[{a_,b_,c_}]:={b,a,c}
F2[{a_,b_,c_}]:={a,c,b}

F1[{Grasshopper1,Grasshopper2,Grasshopper3}]
F2[{Grasshopper1,Grasshopper2,Grasshopper3}]

Next using mathematica, we determinite all possible outcomes of the loop by using the number 1 as the first grasshopper, 2 as the second grasshopper, and 3 as the third grasshopper.
The next manipulation take the hoping time (in second) and generates a random pattern. 
"Union" gives all possible outcomes during the hop. Last gives us last result after hopping in a given time. "List" shows all the events during the hoppping.

Manipulate[Column[{"Starting position: {1,2,3}",Type[ComposeList[a,{1,2,3}]]}],
{{Time,1985,"Hopping Time"},1,2000,1,Appearance->"Open"},
{{Type,Union,"Type of answer"},{Union,Last,List}},
{{a,{},"Click"},{},Button["Random Hop Generator",a=RandomChoice[{F1,F2},Time]]&}]

Notice that there are only six kind of answer since only six possible outcomes can be generate using "F1" and "F2" function interchangeably.
Suppose we're dealing with a small number, the next manipulation shows a permutation given hopping time by choosing our own starting position.

Manipulate[
Column[{
Infix[ComposeList[Extract[Tuples[{F1,F2},Time],Permutation],Choice],"->"],
If[Last[ComposeList[Extract[Tuples[{F1,F2},Time],Permutation],Choice]]==Choice,
"This hopping pattern returns to the starting position!","This pattern doesn't return to the starting position!"]}],
{{Choice,{1,2,3},"Starting Position"},{{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}}},
{{Time,2,"Hopping time"},1,10,1,Appearance->"Open"},{Permutation,1,2^Time,1,Appearance->"Open"}]

Note that with the hopping time be any odd numbers less than 10, there is no way for the grasshoppers to hop back to the starting position.
One can further investigate it with the next manipulation.

Manipulate[
Column[{Infix[ComposeList[Take[{Loop1,Loop2,Loop3,Loop4,Loop5,Loop6,Loop7,Loop8,Loop9,Loop10},n],Choice],"->"],
If[Last[ComposeList[Take[{Loop1,Loop2,Loop3,Loop4,Loop5,Loop6,Loop7,Loop8,Loop9,Loop10},n],Choice]]==Choice,
"This pattern allows the grasshoppers to hop back to starting position!","The last position is not the starting position!"]}],
{{n,2,"Number of Loop"},Range[10]},
{{Choice,{1,2,3},"Starting Position"},{{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}}},
{Loop1,{F1,F2}},{Loop2,{F1,F2}},{Loop3,{F1,F2}},{Loop4,{F1,F2}},{Loop5,{F1,F2}},{Loop6,{F1,F2}},{Loop7,{F1,F2}},{Loop8,{F1,F2}},{Loop9,{F1,F2}},{Loop10,{F1,F2}},
ControlPlacement->Left]

Next, by using Mathematica, we'll allow it to hop 1985 times miltiple times (default 100 times). By doing this we expect none of the ending results be the starting position.

Manipulate[
Column[{Click,"The union of the whole list is:",Union[Click],
If[MemberQ[Click,Choice],
"One of them returns to the starting position!",
"None of them returns to the starting position!"]}],
{{n,1985,"Number of Loop"},1,2000,1, Appearance->"Open"},
{{Choice,{1,2,3},"Starting Position"},{{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}}},
{{a,100,"Running Times"},1,500,1,Appearance->"Open"},
{{Click,{},"Please click"},Button["For Random Result",Click=Table[Last[ComposeList[RandomChoice[{F1,F2},n],Choice]],{i,a}]]&}
]

By that means, we know that there're 2^1985 choices for the grasshopper to hop 1985 times. 
By randomly accumulate those  results multiple times, if there's one of them that hops back to the starting position, we'ld contradict the question.
Since none of them hops back to the starting position, we may still accept that the question holds but further stronger proof is still required.