Le Monde puzzle [#1070]

[This article was first published on R – Xi'an's Og, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Rewording Le Monde mathematical puzzle  fifth competition problem

For the 3×3 tables below, what are the minimal number of steps to move from left to rights when the yellow tokens can only be move to an empty location surrounded by two other tokens?

In the 4×4 table below, there are 6 green tokens. How many steps from left to right?

Painful and moderately mathematical, once more… For the first question, a brute force simulation of random valid moves of length less than 100 returns solutions in 4 steps:

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
     1    1    1    0    0    1    0    0    1
     1    0    1    0    1    1    0    0    1
     0    0    1    1    1    1    0    0    1
     0    0    1    1    0    1    0    1    1
     0    0    1    0    0    1    1    1    1

But this is not an acceptable move because of the “other” constraint. Imposing this constraint leads to a solution in 9 steps, but is this the lowest bound?! It actually took me most of the weekend (apart from a long drive to and from a short half-marathon!) to figure out a better strategy than brute force random exploration: the trick I eventually figured out is to start from the finishing (rightmost) value F of the grid and look at values with solutions available in 1,2,… steps. This is not exactly dynamic programming, but it keeps the running time under control if there is a solution associated with the starting (leftmost) value S. (Robin proceeded reverse-wise, which in retrospect is presumably equivalent, if faster!) The 3×3 grid has 9 choose 5, ie 126, possible configurations with 5 coins, which means the number of cases remains under control. And even so for the 4×4 grid with 6 coins, with 8008 configurations. This led to a 9 step solution for n=3 and the proposed starting grid in yellow:

<br />
[1] 1 1 1 0 0 1 0 0 1<br />
[1] 1 1 0 0 1 1 0 0 1<br />
[1] 1 1 0 1 1 0 0 0 1<br />
[1] 0 1 0 1 1 1 0 0 1<br />
[1] 0 1 1 1 0 1 0 0 1<br />
[1] 1 1 1 1 0 0 0 0 1<br />
[1] 0 1 1 1 1 0 0 0 1<br />
[1] 0 0 1 1 1 0 0 1 1<br />
[1] 0 0 1 1 0 0 1 1 1<br />
[1] 0 0 1 0 0 1 1 1 1<br />

and a 19 step solution for n=4:
<br />
[1] 1 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1<br />
[1] 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1<br />
[1] 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0<br />
[1] 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0<br />
[1] 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0<br />
[1] 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 0<br />
[1] 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0<br />
[1] 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0<br />
[1] 1 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0<br />
[1] 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0<br />
[1] 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 0<br />
[1] 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0<br />
[1] 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0<br />
[1] 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0<br />
[1] 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 0<br />
[1] 0 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0<br />
[1] 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 0<br />
[1] 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0<br />
[1] 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0<br />

The first resolution takes less than a minute and the second one just a few minutes (or less than my short morning run!). Surprisingly, using this approach does not require more work, which makes me wonder at the solution Le Monde journalists will propose. Given the (misguided) effort put into my resolution, seeing a larger number of points for this puzzle is no wonder.

To leave a comment for the author, please follow the link and comment on their blog: R – Xi'an's Og.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)