Taking n steps forward and m steps back: probability of returning where you started if n and m are determined by random dice rolls. You've all heard the phrase "Three steps forward, two steps back."
I am trying to figure out the probability of returning to my starting point if the number of steps forward is determined by rolling one six-sided die and the number of steps backward is determined by rolling another six-sided die.
Let's call rolling both dice a "trip." So if I roll a 3 on die #1, I go forward 3 steps, and then I roll a 2 on die #2, I go backward 2 steps.  My total distance covered in the 'trip' is 1 step.
What is the probability that I return to the origin after 1 trip?  What is the probability after 2 trips?  What is the probability after n trips?
 A: The difficulty in this problem lies in the calculation of the number of different ways a sum of n throws of a die can be determined. For one throw the probability that the 'sum' of the second die equals the first is $\frac{1}{6}$, which is calculated by adding the probabilities of rolling the same number on two dice i.e. $6\times \frac{1}{6^2} = \frac{1}{6}$
For two throws you need to add together the probabilities of rolling each possible two dice total (i.e. 2, 3, 4 ... 12). The probability of a single throw is $$P_{total}=\frac{\text{Number of ways to roll the total}}{\text{Total number of possible rolls}}$$We square because we need the probability of it happening on the first die and the second (and = multiply). This is relatively simple:
$$\begin{matrix}
\text{Total for 2 dice}:&2&3&4&5&6&7&8&9&10&11&12\\
\text{Number of ways to roll}:&1&2&3&4&5&6&5&4&3&2&1\\
\text{Probability}:&\bigr(\frac{1}{36}\big)^2&\bigr(\frac{2}{36}\big)^2&\bigr(\frac{3}{36}\big)^2&\bigr(\frac{4}{36}\big)^2&\bigr(\frac{5}{36}\big)^2&\bigr(\frac{6}{36}\big)^2&\bigr(\frac{5}{36}\big)^2&\bigr(\frac{4}{36}\big)^2&\bigr(\frac{3}{36}\big)^2&\bigr(\frac{2}{36}\big)^2&\bigr(\frac{1}{36}\big)^2
\end{matrix}$$
Summing all the probabilities, which are all the different ways that the sum of the two rolls on the first dice  equal the sum on the second, we get $$\frac{1}{36^2}(1^2+2^2+3^2+4^2+5^2+6^2+5^2+4^2+3^2+2^2+1^2) = \frac{73}{648}$$
Which is less than what we get for one trip, which makes sense when you think that there are many more ways to not be at the origin. 
For three trips (this will be the last individual case I will work through) I wrote down the permutations of 3 dice rolling to achieve every outcome $k$ such that $3\le k\le6\times3$ which are all the possible totals for three dice. 
I realised after a while that there was a pattern, and then after trying the first few for 4 trips I concluded that there was a Pascals triangular number thing going on. It arises because when writing down all the permutations you find that one number is fixed while the others permute through something you have done before i.e. for $n=2$. Then you move up the fixed number and repeat the process until the list is exhausted. This is hard to explain in words but makes sense if you write down the permutations orderly by hand.
For $n$ trips, the number of different ways of rolling a specific total $k$ where the allowed $k$ are given by $n\le k \le 6n$ are given by the $(k-n+1)^{th}$ column in the $n^{th}$ row of this modified Pascals triangle:
$$\begin{matrix}
    &&&&&&&&&&1&&1&&1&&1&&1&&1\\
    &&&&&1&&2&&3&&4&&5&&6&&5&&4&&3&&2&&1\\
1&&3&&6&&10&&15&&21&&25&&27&&27&&25&&21&&15&&10&&6&&3&&1
    \end{matrix}$$
where each number is the sum of the 6 numbers above it i.e. 3 on either side. Only the first three rows are given because otherwise it would be much too wide.
So for 3 trips we have $$\left( \frac{1}{6^3}\ \right)^2(1^2+3^2+6^2+...+27^2+27^2+25^2+...+3^2+1^2)=\frac{361}{3888}$$
To generalise to $n$ trips using this method you would need to expand the modified 'Dicey' triangle out to row n, sum the square of every element in the row, and divide by $6^{2n}$.
A: This is probably not the approach you're after but anyway, here we go.
By writing a small C-program that accumulates whether or not we arrived at position zero after n steps and running it over very many trials, we get the probability as a function of n. Here is the code:
    #include <string.h>
    #include <unistd.h>
    #include <strings.h>
    #include <stdlib.h>
    #include <assert.h>

    #define randf() ((double) rand () / ((double) RAND_MAX+1))
    #define rand6() ((int) (randf () * 6 + 1.0))

    int main (void)
    {
        sranddev ();
        const int trials = 100000000;
        const int N = 200;
        int match[N];
        int fail[N];
        bzero (match, sizeof (match));
        bzero (fail,  sizeof (fail));

        for (int i=0; i<trials; i++)
        {
            int pos = 0;
            for (int n=0; n<N; n++)
            {
                pos += rand6 ();
                pos -= rand6 ();
                if (pos == 0)
                    match[n]++;
                else
                    fail[n]++;
            }
        }

        for (int n=0; n<N; n++)
            printf ("%0.18lf\n", (double) match[n] / (match[n] + fail[n]));
    }

By running the program and inserting the data into R we get the following plot:

With some bruteforce, one finds that by plotting $1 / prob(n)^2$ instead of prob(n), we get a linear function:

This suggests that the probability can be expressed as p(n)=$1/sqrt(kn+m)$ and by using initial conditions p(0)=1 and p(1)=1/6 we get k=35 and m=1.
To see how this probability fits the experimental data, we get the red line:

As one can see, it doesn't fit exactly but anyhow, it's a good start :)
