法国数学家梅齐亚克在他著名的《数字组合游戏》 (1962) 中提出了一个问题:一位商人有一个重 40 磅 的砝码,一天不小心将砝码摔成了四块。后来商人称得每块的重量都是整磅数,而且发现这四块碎片可以在天平上称 1 至 40 磅之间的任意重量。请问这四块碎片各重多少? a - data.frame(x=seq(1001,3000,2)) a$y - (a$x^2-1)/8 a$z - a$y%%a$x d - expand.grid(rep(list(1:40),4)) d - d d - d d , 1, all),] a - expand.grid(rep(list(-1:1),4)) a -t(as.matrix(a)) d - as.matrix(d) f - as.data.frame(d%*%a) f$w - sapply(1:nrow(f),function(i) sum(1:40 %in% f )) g - f d Var1 Var2 Var3 Var4 1 3 9 27