Here you will find daily news and tutorials about R, contributed by over 573 bloggers.
There are many ways to follow us - By e-mail:On Facebook: If you are an R blogger yourself you are invited to add your own R content feed to this site (Non-English R bloggers should add themselves- here)

The puzzle in the weekend edition of Le Monde this week can be expressed as follows:

Consider four integer sequences (x_{n}), (y_{n}), (z_{n}), and (w_{n}), such that

and, if u=(x_{n},y_{n},z_{n},w_{n}), for i=1,…,4,

if u_{i} is not the maximum of u and

otherwise. Find the first return time n (if any) such that x_{n}=0. Find the value of (y_{0},z_{0},w_{0}) that minimises this return time.

The difficulty stands with the constraint that the sequences only take integer values, which eliminates a lot of starting values. I wrote an R code that corresponds to this puzzle:

library(schoolmath)
nodd=TRUE
while (nodd){
suite=start=c(0,sort(2*sample(1:23,3)))
clock=seq(0,48,le=49)*2*pi/48
clock=rbind(sin(clock),cos(clock))
plot(clock[1,],clock[2,],type="l", axes=F,xlab="",ylab="")
radii=c("gold","sienna","steelblue","tomato")
for (t in 1:10^5){
for (j in 1:4){
if (suite[j]<max(suite)){
suite[j]=((suite[j]+min(suite[suite>suite[j]]))/2)%%48
}else{
suite[j]=((suite[j]+48+min(suite[-j]))/2)%%48}
}
plot(clock[1,],clock[2,],type="l", axes=F,xlab="",ylab="")
for (j in 1:4)
lines(c(0,sin(2*pi*suite[j]/48)),c(0,cos(2*pi*suite[j]/48)),col=radii[j])
if ((suite[1]==0)||(max(is.decimal(suite))==1)){
nodd=(max(is.decimal(suite))==1)
print(t)
break()}
}}

but it fails to produce a result, always bumping into unacceptable starting values after one or two (rarely three) iterations! So either the starting conditions are very special out of the 23*22*21/6=1771 possible values of sort(2*sample(1:23,3)) or…I missed a point in the original puzzle.