Using my grad student powers of literature review, this is indeed a solved problem that can be analytically proven using combinatorics.

First off, the probability of an attacker or defender losing an army can be calculated for each combination of dice rolls, shown below [taken from http://www.plainsboro.com/~lemke/risk/]:

Attacker: one die; Defender: one die:

```
Attacker wins 15 out of 36 (41.67 %)
Defender wins 21 out of 36 (58.33 %)
```

Attacker: two dice; Defender: one die:

```
Attacker wins 125 out of 216 (57.87 %)
Defender wins 91 out of 216 (42.13 %)
```

Attacker: three dice; Defender: one die:

```
Attacker wins 855 out of 1296 (65.97 %)
Defender wins 441 out of 1296 (34.03 %)
```

Attacker: one die; Defender: two dice:

```
Attacker wins 55 out of 216 (25.46 %)
Defender wins 161 out of 216 (74.54 %)
```

Attacker: two dice; Defender: two dice:

```
Attacker wins both: 295 out of 1296 (22.76 %)
Defender wins both: 581 out of 1296 (44.83 %)
Both win one: 420 out of 1296 (32.41 %)
```

Attacker: three dice; Defender: two dice:

```
Attacker wins both: 2890 out of 7776 (37.17 %)
Defender wins both: 2275 out of 7776 (29.26 %)
Both win one: 2611 out of 7776 (33.58 %)
```

So the attacker has the advantage in the 2 vs 1, 3 vs 1, and 3 vs 2 scenarios.

To calculate the outcome of an entire battle is more complicated because the outcome of each battle will determine how many die (i.e. the probability function) for the ensuing battle. The paper John Turtle posted suggests one such way of calculating this using Markov chains. Another approach, suggested by Taflin, models the battle sequences as a discrete diffusion problem, with a “free-space” solution where the attacker’s armies are greater than 3 and the defender’s greater than 2 (always using 3 vs 2 dice), and “boundary” regions where the number of dice thrown is dependent on the number of attacking/defending armies. A Javascript implementation of his method is available online here:

http://recreationalmath.com/Risk/index.htm

-Pete