読者です 読者をやめる 読者になる 読者になる

コモディティ化するエンジニア

組み込み系のSI屋から、Railsを扱うWeb系のベンチャーに転職した筆者が、日々ミジンコなりに情報を綴るブログ。

「プログラマ脳を鍛える数学パズル」の問題をRubyで解いてみた #6 (Q:17)

Ruby プログラマ脳を鍛える数学パズル

プログラマ脳を鍛える数学パズル」の回答記事、第6回目です。

問題文については、残念ながら転載が禁止されていますので、本連載(?)では自分の回答コードのみを掲載していきます。
気になってしまった方は、本を実際に購入し、解いてみることをオススメします。

Q17「30人31脚に挑戦!」の回答コード

今回から、模範解答とは異なるアプローチで解けた場合に限って、ブログに投稿していきたいと思います。 コード中で使っている、measure doについては、過去記事で書いているので、こちらをご参照ください。

模範解答その1では、1人ずつ男子か女子を配置していく力任せなやり方でした。 対して、今回の私の解答では、女子の配置のみを考えており、模範解答1よりは軽量な結果が出ています。 以下、計測結果。

$  paiza ruby puzzle17_1.rb
2178309
      user     system      total        real
 10.390000   0.080000  10.470000 ( 10.747219)
$  paiza ruby puzzle17.rb  
2178309
      user     system      total        real
  1.730000   0.010000   1.740000 (  1.740072)

模範解答2が最速なのは疑いようがありませんが、パッと見のわかりやすさを残しつつ高速なコードを書けて良かったです。