## Le Monde puzzle [38]

**S**ince I have resumed my R class, I will restart my resolution of ** Le Monde** mathematical puzzles…as they make good exercises for the class. The puzzle this week is not that exciting:

Find the four non-zero different digits a,b,c,d such that abcd is equal to the sum of all two digit numbers made by picking without replacement two digits from {a,b,c,d}.

The (my) dumb solution is to proceed by enumeration

for (a in 1:9){ for (b in (1:9)[-a]){ for (c in (1:9)[-c(a,b)]){ for (d in (1:9)[-c(a,b,c)]){ if (231*sum(c(a,b,c,d))==sum(10^(0:3)*c(a,b,c,d))) print(c(a,b,c,d)) }}}}taking advantage of the fact that the sum of all two-digit numbers is (30+4-1) times the sum

a+b+c+d, but there is certainly a cleverer way to solve the puzzle (even though past experience has shown that this was not always the case!)

October 4, 2010 at 12:13 am

[…] Monde puzzle [34] Since the puzzle in this week (-end) edition of Le Monde is not (easily) solvable via an R program, I chose to go […]

September 30, 2010 at 7:47 pm

Not much different but checks only a small set..

library(gregmisc)

mysets <-permutations(9, 4)

universe.sol<-mysets%*%10^(3:0)

possible.sol<-intersect(7*11*3*c(10:30),universe.sol)

# now check these 7 possibilities

for(i in 1:length(possible.sol)){

if(possible.sol[i]==231*sum(as.numeric(unlist(strsplit(as.character(possible.sol[i]),NULL)))))

print(possible.sol[i])

}

September 30, 2010 at 5:02 pm

[…] on PIN number By robinryder Now that the new school year has started, Christian Robert has picked up solving the Le Monde mathematical puzzles using R again, which leads me to solving them without […]