こころがホッコリー

ただイカしたRubyistになりたい人生だった。

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

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

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

Q18「ショートケーキの日」の回答コード

この連載では、模範解答とは異なるアプローチやコーディングスタイルで解けた場合に限って、ブログに投稿しています。
コード中で使っている、measure doについては、過去記事で書いているので、こちらをご参照ください。

平方数の組み立てをさぼっていますが......
模範解答その1より早く、模範解答その2よりわかりやすく、どちらの解答よりも短いコードを書けたのではないかと思います。
以下、計測結果。

$  paiza ruby puzzle18.rb
[1, 15, 10, 26, 23, 2, 14, 22, 27, 9, 16, 20, 29, 7, 18, 31, 5, 11, 25, 24, 12, 13, 3, 6, 30, 19, 17, 32, 4, 21, 28, 8]
      user     system      total        real
  1.670000   0.010000   1.680000 (  1.670901)
$  paiza ruby puzzle18_1.rb
32
[1, 8, 28, 21, 4, 32, 17, 19, 30, 6, 3, 13, 12, 24, 25, 11, 5, 31, 18, 7, 29, 20, 16, 9, 27, 22, 14, 2, 23, 26, 10, 15]
      user     system      total        real
  2.650000   0.020000   2.670000 (  2.671720)
$  paiza ruby puzzle18_2.rb
32
[8, 28, 21, 4, 32, 17, 19, 30, 6, 3, 13, 12, 24, 25, 11, 5, 31, 18, 7, 29, 20, 16, 9, 27, 22, 14, 2, 23, 26, 10, 15, 1]
      user     system      total        real
  0.280000   0.000000   0.280000 (  0.286056)

模範解答2はやっぱり早いですね。

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

プログラマ脳を鍛える数学パズル」の回答記事、第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が最速なのは疑いようがありませんが、パッと見のわかりやすさを残しつつ高速なコードを書けて良かったです。

会社の開発合宿で、任意のメソッド呼び出しを監視するgemを作ってきた話

現職の開発部では、半年に一度ぐらいのペースで、開発合宿を開催しています。
その中で、今回は「プロダクションコードを変更せず、任意のメソッド呼び出しを監視できるgem」を作成してきたので、簡単にその紹介をしたいと思います。 (まだ、rubygems.orgには登録していません)

開発合宿の様子について興味がある方は、会社の開発部ブログの方をご覧ください。

texta.pixta.jp

続きを読む

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

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

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

Q15「階段で立ち話」の回答コード

もちろん、私が書いたコードなので、模範回答ではありません。
コード中で使っている、measure doについては、過去記事で書いているので、こちらをご参照ください。

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

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

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

Q4「棒の切り分け」の回答コード

もちろん、私が書いたコードなので、模範回答ではありません。
コード中で使っている、measure doについては、過去記事で書いているので、こちらをご参照ください。