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.
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
|-1|-2|-3|
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
|-1|-2|…|-9|
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.
To 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 about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.