Sha256: a8e82fb3e59aa8240efb4d20b70398c28eef4f7c593b71e327d5f5268de71a99
Contents?: true
Size: 519 Bytes
Versions: 23
Compression:
Stored size: 519 Bytes
Contents
unless Array.method_defined? :sample require 'backports/tools' class Array def sample(n = Backports::Undefined) return self[Kernel.rand(size)] if n == Backports::Undefined n = Backports.coerce_to_int(n) raise ArgumentError, "negative array size" if n < 0 n = size if n > size result = Array.new(self) n.times do |i| r = i + Kernel.rand(size - i) result[i], result[r] = result[r], result[i] end result[n..size] = [] result end end end
Version data entries
23 entries across 23 versions & 2 rubygems