裏 RjpWiki

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

10 を作る

2014年12月17日 | ブログラミング

9 を 4 個使って,+, -, *, / の演算子を適当に使って,かっこも適当に使って演算結果を 10 にせよ。

全ての数を対象にしないので,以下のように適当にプログラムすればよい。
余計な括弧もあるけど,間違いじゃないし。
実行時間は 0.050 秒なので最適化する必要もない。

Expr = c("9%s(9%s(9%s9))",
         "(9%s9)%s(9%s9)",
         "((9%s9)%s9)%s9",
         "(9%s(9%s9))%s9",
         "9%s((9%s9)%s9)")
Op = c("+", "-", "*", "/")
Eval = function(Expr) {
  for (i in Op) {
    for (j in Op) {
      for (k in Op) {
        s = sprintf(Expr, i, j, k)
        a = eval(parse(text=s))
        if (!is.na(a) && a == 10) {
          cat(s, "\n")
        }
      }
    }
  }
}
for (expr in Expr) {
  Eval(expr)
}

((9*9)+9)/9
(9+(9*9))/9

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村