でっかい数を作る

1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0

+−×÷()
を使って*1大きい数を作れ。

  • 100万:偉い
  • 50万:賢い
  • 10万:ちょい賢い
  • 225:一般人
  • 67:ちょいバカ
  • 15.5:バカ

という問題が地下のホワイトボードに書いてあったのでtweetしたところbuzzってしまった。出題者の@fufufukawaさんごめんなさい。
10万までは行ったので、詰まった人向けに解答を置いておくことにする。

  • 15.5:黙って足す。
  • 67:全部かけ算。小数点以下ちょっと生える。
  • 225:具体的にどうやるんだろう。
  • 100000:2.0 ÷ { (1.9 - 1.8) * (1.7 - 1.6) * (1.5 - 1.4) * (1.2 * 1.1 - 1.3) }

補足

225は「足し算とかけ算を利用したときの最大値」だそうです。


以下強烈なネタバレ。











そして(だいたい17:00)

100万越えの解答が@で飛んできたので紹介。

1.5÷(1.1 - 2.0 / 1.3 / 1.4)÷(1.2 - (1.9÷1.6))÷(1.8-1.7)
(via @taniguchitomoya

ICPCのやばい人怖いです><

いろいろ調べてみた

@飛んできた中での最速が@taniguchitomoyaさん、現在わかってる限りの最高値1092000など関連ワードで検索したところ

  1. [twitter:@climpet]さん(14:46)
  2. [twitter:@itchyny]さん(15:30)
  3. [twitter:@otsuotsu]さん(15:34)
  4. [twitter:@xl1blue]さん(16:04)
  5. [twitter:@chokudai]さん(16:14)
  6. [twitter:@taniguchitomoya]さん(17:00)

の順に100万越えの解答が出たとのことです。拡散してるのが情報系クラスタが多く100万越えは主にプロコン関係者が多い模様w

ソルバーのコード例

[twitter:@chokudai]さんによるコードがこちら
[twitter:@yuyarin]さんによるコードがこちら
すぐに読めないので読んでからなんか書きます(いわゆる「あとで書くメソッド」

ソルバーを使わない10万までの解答方針

これも帰るまでにまとめる。

20:47追記

1701700が出たそうです([twitter:@xhl]さん)。

*1:ベキ乗は使えません