multiplying the bars

[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.

The latest Riddler makes the remark that the expression


has no unique meaning (and hence value) since it could be

| -1x|-2|-3 | = 5   or   |-1| – 2x|-3| = -5

depending on the position of the multiplication sign and asks for all the possible values of


which can be explored by a recursive R function for computing |-i|-(i+1)|…|-(i+2j)|

vol<-function(i,j){x=i if(j){x=c(i-(i+1)*vol(i+2,j-1),abs(i*vol(i+1,j-1)+i+2*j)) if(j>1){for(k in 1:(j-2)) x=c(x,vol(i,k)-(i+2*k+1)*vol(i+2*k+2,j-k-1))}} return(x)}

producing 40 different values for the ill-defined expression. However, this is incorrect as the product(s) hidden in the expression only involve a single term in vol(i,j)… I had another try with the decomposition of the expression vol(i,j) into a first part and a second part

prod<-function(a,b) a*b[,1]+b[,2] val<-function(i,j){ x=matrix(c(i,0),ncol=2) if(j){x=rbind(cbind(i,prod(-(i+1),val(i+2,j-1))), cbind(abs(prod(-i,val(i+1,j-1))-i-2*j),0)) if(j-1){for(k in 2:(j-1)){ pon=val(i,k-1) for(m in 1:dim(pon)[1]) x=rbind(x,cbind(pon[m,1],pon[m,2]+prod(-(i+2*k-1),val(i+2*k,j-k))))}}} return(x)}

but it still fails to produce the right version.

If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook

Leave a Comment