2010-05-01から1ヶ月間の記事一覧

パーフェクト・シャッフル

52枚のトランプの山を半分に分け、26枚ずつにする。この2つの山を1枚1枚互い違いに挟み込むようにシャッフルする。つまり、 1,2,3,4,5,6....26 27,28,29,30....52という2つの山を 27,1,28,2,29,3....というふうにシャッフルする。これをパーフェクト・シャッ…

ユークリッド互除法って速いのかしら

Project Euler 108問目。nが与えられたとき、 1/x + 1/y = 1/nを満たす、x、yのユニークな組み合わせ数を調べる。初めて組み合わせ数が1000を超えるnはいくつか?RubyのComparableみたいなものを使ってみたかったこともあって、分数クラスを作ってブルートフ…

関数型っぽくフィボナッチ

ブログの間が空きすぎたときの、オイラープロジェクト。25問目。フィボナッチ数列で初めて1000桁を超えるのはいくつ目か、という問題。普通にクラスを作ってメモ化。 class Fib def initialize @memo = {} end def calc(n) @memo[n] ||= begin (n <= 2) ? 1:…

RailsのMapperあたりを読んでみる

「Head First Rails」に続いて、「RailsによるアジャイルWebアプリケーション開発 第3版」をツラツラと読んでみた。ホビープログラマとしては、テストの話あたりが新鮮で面白かった。まずURLのラウティング(ディスパッチ?)処理をやってるActionController::R…

2人でババ抜きをしてディール直後にカードが手元に残らない確率

ムスメと2人でババ抜きをしていて、あまりにもディール直後でいきなりババだけ残して終了となることが多いことに気づいた。使っていたのはJ、Q、K、Aの4種のカードとババ1枚と少なめだけど、それにしてももう少し奇数枚で割れても良さそうに思えた。で、以下…