情報の共有の問題に明け暮れている間に先を越されてしまった。
17 をいくつかと四則演算と括弧で、2005を作る。17の数が一番少ないのはどんな方法か
を、解くプログラムを書こうと思っていたんだが、id:igatoxin さんに先を越されてしまった。
id:igatoxin さんは逆ポで行ったようなので、ならば逆ポとはあまり関係のなさそうな方法でせめてみた。もちろん、ブルートフォースの虱潰しであることには変わりがない。
手元のマシン( duron 800MHz ぐらい )で、ruby で計算して、100秒ぐらい。括弧の数を減らす処理なんかは入ってないので見にくいが、17が10個で
- 2005 = ((((17 * 17) + *1 - 17)
であった。
ちなみに。
副産物で、17がn個と四則演算で、何通りの通りの値を作ることができることもわかる(負の数は数えてない)
17の個数 | できる値 |
---|---|
2 | 5通り |
3 | 15通り |
4 | 50通り |
5 | 179通り |
6 | 664通り |
7 | 2543通り |
8 | 10040通り |
9 | 40662通り |