Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
配列のランダム化 - ~fumi/ChangeLog
[go: Go Back, main page]

Prev / Next

2004-04-26 / 配列のランダム化

ruby-list 39588 からのスレッドより

Simple に

class Array
  def randomize
    sort_by{ rand(100) }
  end

  def randomize!
    replace randomize
  end
end


速度を気にする場合

class Array
  def randomize!
    length.times do |i1|
      i2 = rand(length)
      t = self[i1]
      self[i1] = self[i2]
      self[i2] = t
    end
  end

  def randomize
    result = self.dup
    result.randomize!
    result
  end
end


comments powered by Disqus