monthly gimite

試験運用中。

Enumerable#shuffle

確かにあると便利ですよねぇ。僕も勝手に定義して使ってます。うちのはこんな感じです。

module Enumerable
    
    def shuffle()
      return self.to_a().dup().shuffle!()
    end
    
end

class Array
    
    def shuffle!()
      for i in 0...self.size
        j= i + rand(self.size-i)
        self[j], self[i]= self[i], self[j]
      end
      return self
    end
    
end

最近教えてもらったアルゴリズムだったり。