裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

覆面算

2014年09月03日 | ブログラミング

                INTO
                ONTO
               CANON
              INTACT
             AMMONIA
            OMISSION
           DIACRITIC
          STATISTICS
         ASSOCIATION
        ANTIMACASSAR
       CONTORTIONIST
   NONDISCRIMINATION
 + CONTRADISTINCTION
---------------------
   MISADMINISTRATION

答は,コメントとして記載しておきます

コメント (1)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« やりたいことをそのままプロ... | トップ | 行列の各行から指定した要素... »
最新の画像もっと見る

1 コメント

コメント日が  古い順  |   新しい順
覆面算(答) (r-de-r)
2014-09-03 16:08:34
a = c("INTO", "ONTO", "CANON", "INTACT",
"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
返信する

コメントを投稿

ブログラミング」カテゴリの最新記事