INTO
ONTO
CANON
INTACT
AMMONIA
OMISSION
DIACRITIC
STATISTICS
ASSOCIATION
ANTIMACASSAR
CONTORTIONIST
NONDISCRIMINATION
+ CONTRADISTINCTION
---------------------
MISADMINISTRATION
答は,コメントとして記載しておきます
"AMMONIA", "OMISSION", "DIACRITIC",
"STATISTICS", "ASSOCIATION", "ANTIMACASSAR",
"CONTORTIONIST", "NONDISCRIMINATION",
"CONTRADISTINCTION", "MISADMINISTRATION")
alphabet = names(table(unlist(strsplit(a, ""))))
s = sapply(a, function(b) rev(sapply(unlist(strsplit(b, "")), function(x) which(alphabet == x))))
library(e1071)
perm = permutations(10) - 1
x = matrix(0, 14, 17)
for (k in 1:nrow(perm)) {
y = mapply(function(i, j) x[i, 1:length(j)] <= perm[k, j], 1:14, s)
z = colSums(x[1:13, ])
eq = TRUE
for (i in 1:16) {
if (z[i] > 9) {
z[i + 1] = z[i + 1] + z[i]%/%10
z[i] = z[i]%%10
}
if (z[i] != x[14, i]) {
eq = FALSE
break
}
}
if (eq) {
print(x)
}
}
4372
2372
59323
437957
9882349
28466423
149504745
6797467456
96625497423
937489596690
5237207423467
32314650484397423
+ 52370914674357423
--------------------
84691843467097423