鍋あり谷あり

テーマを決めずに適当に書いています。

和暦から西暦へ

情報の共有の問題に明け暮れている間に先を越されてしまった。

17 をいくつかと四則演算と括弧で、2005を作る。17の数が一番少ないのはどんな方法か

を、解くプログラムを書こうと思っていたんだが、id:igatoxin さんに先を越されてしまった。
id:igatoxin さんは逆ポで行ったようなので、ならば逆ポとはあまり関係のなさそうな方法でせめてみた。もちろん、ブルートフォースの虱潰しであることには変わりがない。
手元のマシン( duron 800MHz ぐらい )で、ruby で計算して、100秒ぐらい。括弧の数を減らす処理なんかは入ってないので見にくいが、17が10個で

  • 2005 = ((((17 * 17) + *1 - 17)

であった。
ちなみに。
副産物で、17がn個と四則演算で、何通りの通りの値を作ることができることもわかる(負の数は数えてない)

17の個数できる値
25通り
315通り
450通り
5179通り
6664通り
72543通り
810040通り
940662通り

もっと多いと思っていた。

*1:17 + 17) * (17 + (17 + 17)))) - (17 / 17