**A** cheezy Le Monde mathematical puzzle : (which took me much longer to find [in the sense of locating] than to solve, as Warwick U does not get a daily delivery of the newspaper [and this is pre-Brexit!]):

Take a round pizza (or a wheel of Gruyère) cut into seven identical slices and turn one slice upside down. If the only possibly moves are to turn three connected slices to their reverse side, how many moves at least are needed to recover the original configuration? What is the starting configuration that requires the largest number of moves?

Since there are ony N=2⁷ possible configurations, a brute force exploration is achievable, starting from the perfect configuration requiring zero move and adding all configurations found by one additional move at a time… Until all configurations have been visited and all associated numbers of steps are stable. Here is my R implementation

nztr=lengz=rep(-1,N) #length & ancestor nztr[0+1]=lengz[0+1]=0 fundz=matrix(0,Z,Z) #Z=7 for (i in 1:Z){ #only possible moves fundz[i,c(i,(i+1)%%Z+Z*(i==(Z-1)),(i+2)%%Z+Z*(i==(Z-2)))]=1 lengz[bit2int(fundz[i,])+1]=1 nztr[bit2int(fundz[i,])+1]=0} while (min(lengz)==-1){ #second loop omitted for (j in (1:N)[lengz>-1]) for (k in 1:Z){ m=bit2int((int2bit(j-1)+fundz[k,])%%2)+1 if ((lengz[m]==-1)|(lengz[m]>lengz[j]+1)){ lengz[m]=lengz[j]+1;nztr[m]=j} }}

Which produces a path of length five returning (1,0,0,0,0,0,0) to the original state:

> nztry(2) [1] 1 0 0 0 0 0 0 [1] 0 1 1 0 0 0 0 [1] 0 1 0 1 1 0 0 [1] 0 1 0 0 0 1 0 [1] 1 1 0 0 0 0 1 [1] 0 0 0 0 0 0 0

and a path of length seven in the worst case:

> nztry(2^7) [1] 1 1 1 1 1 1 1 [1] 1 1 1 1 0 0 0 [1] 1 0 0 0 0 0 0 [1] 0 1 1 0 0 0 0 [1] 0 1 0 1 1 0 0 [1] 0 1 0 0 0 1 0 [1] 1 1 0 0 0 0 1 [1] 0 0 0 0 0 0 0

Since the R code was written for an arbitrary number Z of slices, I checked that there is no solution for Z being a multiple of 3.

*Related*

**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 on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more…