Class: Musicality::Probabilities

Inherits:
Object
  • Object
show all
Defined in:
lib/musicality/composition/util/probabilities.rb

Class Method Summary collapse

Class Method Details

.random(n) ⇒ Object



13
14
15
16
17
# 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) ⇒ Object



4
5
6
7
8
9
10
11
# 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