なかだです。

At Fri, 1 Jul 2005 18:58:12 +0900,
ktokita wrote in [ruby-list:40899]:
> むぅ・・ この切り方だと何回繰り返しても1回切ったのと同じ?
> トランプのシャッフルはなんで切れるんだろう・・^^;

シャッフルのアルゴリズムとしてはこうかな。微妙に並んだまま移動
してるのがそれっぽいかも。

class Array
  def shuffle!(time=1)
    n = size / 2
    time.times do
      a = []
      until empty?
        a.concat(slice!(0...rand(n)).reverse)
      end
      replace(a.reverse)
    end
    self
  end
end

p ("a".."h").to_a.shuffle!(5)

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦