A princess is as old as the prince will be when the princess is twice the age that the prince was when the princess’s age was half the sum of their present ages.
This one took a while to figure out and there are numerous valid ways of finding the answer.
Here is the solution I came up with
I created the following table from the riddle:
Current
Future
Past
Princess
x
2z
(x+y)/2
Prince
y
x
z
I then created three equations, since the difference in their age will always be the same.
d = the difference in ages
x – y = d
2z – x = d
x/2 + y/2 – z = d
I then created a matrix and solved it using row reduction.
x
y
z
1
-1
0
d
-1
0
2
d
.5
.5
-1
d
It reduced to:
x
y
z
1
0
0
4d
0
1
0
3d
0
0
1
5d/2
This means that you can pick any difference you want (an even one presumably because you want integer ages).
Princess age: 4d
Prince age: 3d
Ages that work
Princess
Prince
4
3
8
6
16
12
24
18
32
24
40
30
48
36
56
42
64
48
72
54
80
60
To see other solutions check out the comments from when I posted this on my blog.
A merchant has 21 sacks of grain: 7 full, 7 half-full and 7 empty. He wants to divide them equally among his three sons. How can he do this, without transferring any grain between sacks, so each son has the same quantity of grain and number of sacks?