Le Monde puzzle [38]
Since 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 [...]