class Musicality::Probabilities
Public Class Methods
random(n)
click to toggle source
# File lib/musicality/composition/util/probabilities.rb, line 13 def self.random n cumulative_probs = Array.new(n-1){ rand }.sort + [1] x0 = 0 cumulative_probs.map {|x| y = x - x0; x0 = x; y } end
uniform(n)
click to toggle source
# File lib/musicality/composition/util/probabilities.rb, line 4 def self.uniform n probs = [1/n.to_f]*n sum = probs.inject(0,:+) if sum != 1 probs[0] += (1 - sum) end return probs end