Sha256: 9259f03a69948003c45b7cc6c926f387d50a29635728f55dd1815d58947557d8
Contents?: true
Size: 786 Bytes
Versions: 8
Compression:
Stored size: 786 Bytes
Contents
class Array # Generates a hash mapping each unique element in the array to the # relative frequency, i.e. the probablity, of it appearence. # # [:a, :b, :c, :c].probability #=> {:a=> 0.25, :b=>0.25, :c=>0.5} # # CREDIT: Brian Schröder def probability probs = Hash.new(0.0) size = 0.0 each do |e| probs[e] += 1.0 size += 1.0 end probs.keys.each{ |e| probs[e] /= size } probs end #-- # Old Definition ... # # def probability # arr = self.to_a # probHash = Hash.new # size = arr.size.to_f # arr.uniq.each do |i| # ct = arr.inject(0) do |mem,obj| # obj.eql?(i) ? (mem+1) : mem # end # probHash[i] = ct.to_f/size # end # probHash # end #++ end
Version data entries
8 entries across 7 versions & 1 rubygems