I played around a bit with the word-counting approach, which seems to have given me some promising results.
Each walk of length
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse M\ge 0)
in
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse n)
dimensions that starts at the origin corresponds to a word of length
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse M)
from the alphabet
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse A_n=\{d_1^+,d_1^-,d_2^+,d_2^-,\ldots,d_n^+,d_n^-\})
.
For instance, if you're interested in walks from
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse (0,\,0,\,0))
to
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse \vec{r} = (7,\,3,\,-4))
in
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse M=20)
steps, consider the word
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse \Omega)
, where
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse \Omega = d_1^+d_1^+d_1^+d_1^+d_1^+d_1^+d_1^+d_2^+d_2^+d_2^+ d_3^-d_3^-d_3^-d_3^-XXXXXX)
.
The
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse d_i^+)
and
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse d_i^-)
characters correspond to steps in the positive and negative directions in dimension
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse i)
, respectively. The
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse X)
:es are characters (directions) yet to be selected from
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse A_3)
. If we walk in the order prescribed from left to right in
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse \Omega)
, by the time we reach the
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse X)
:es, we will have reached
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse \vec{r})
in our walk.
If we consider the first two
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse X)
:es from the left, we can replace them with any pair of
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse d_i^+)
and
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse d_i^-)
(for fixed
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse i)
) and still be in
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse \vec{r})
after these two additional steps. Repeating this for each consecutive pair of
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse X)
:es, assuming that we have an even number of
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse X)
:es, the resulting string describes a walk from the origin to
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse \vec{r})
in
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse M)
steps.
In this particular example, it is realized that we can represent a selection of three pairs of
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse d_1^+)
and
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse d_1^-)
as the sum 3+0+0 (three pairs from the first dimension, none from the remaining two). Similarly, 0+2+1 represents a selection of no pairs of
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse d_1^+)
and
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse d_1^-)
, two pairs of
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse d_2^+)
and
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse d_2^-)
, and one pair of
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse d_3^+)
and
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse d_3^-)
(thus 0+2+1 gives rise to the string
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse d_1^+d_1^+d_1^+d_1^+d_1^+d_1^+d_1^+d_2^+d_2^+d_2^+ d_3^-d_3^-d_3^-d_3^-d_2^+d_2^-d_2^+d_2^-d_3^+d_3^-).)
Each such sum with three summands (where the summands are nonnegative integers that sum to half the number of
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse X)
:es) gives us a walk to
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse \vec{r})
represented by distinct letters.
By counting the number of permutations of all words that arise from all such sums (3+0+0, 0+3+0, 0+0+3, 2+0+1, 2+1+0, 0+2+1, 1+2+0, 0+1+2, 1+0+2, 1+1+1), we get the total number of walks we seek (since no other walks of this type exist).
For this example, we get that the number of walks that we seek, N, is
(Number of walks arising from 3+0+0) + (Number of walks arising from 0+3+0) + ... + (Number of walks arising from 1+1+1) =
Dividing N by the total number of walks in 20 steps (
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse 6^{20})
) yields the probability that we end up in
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse \vec{r})
after 20 steps.
This example is easily extended to the general case. For instance, using the notation
we get that the probability that we end up in
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse \vec{r} = (x_1,\,x_2,\,x_3,\ldots,x_n))
after
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse M)
steps is given by
where the sum is taken over all nonnegative integers
![](https://w3e.kanazawa-it.ac.jp/math/cgi-bin/mimetex1/mimetex.cgi?\reverse i_1, i_2, \ldots i_n)
such that
"Stephen Wolfram is the creator of Mathematica and is widely regarded as the most important innovator in scientific and technical computing today." - Stephen Wolfram