法国数学家梅齐亚克在他著名的《数字组合游戏》(1962)中提出了一个问题:一位商人有一个重40磅的砝码,一天不小心将砝码摔成了四块。厥后商人称得每块的重量都是整磅数,并且发明这四块碎片可以在天平上称1至40磅之间的任意重量。请问这四块碎片各重几多?
a <- data.frame(x=seq(1001,3000,2))
a
x^2-1)/8
a
y%%a$x
d <- expand.grid(rep(list(1:40),4))
d <- d[rowSums(d)==40,]
d <- d[apply(d[ , -ncol(d)] < d[ , -1], 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[i,]))
g <- f[which(f$w==40),]
d[rownames(g),]
Var1 Var2 Var3 Var4
1 3 9 27
