Class: SocialStream::Population::PowerLaw

Inherits:
Object
  • Object
show all
Defined in:
lib/social_stream/population/power_law.rb

Instance Method Summary collapse

Constructor Details

#initialize(array, options = {}) ⇒ PowerLaw

Yields each element of array y times given by power law distribution y = ax**k + e

Options: Each constant in the function



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/social_stream/population/power_law.rb', line 10

def initialize(array, options = {})
  options[:a] ||= array.size
  options[:k] ||= -2.5
  options[:e] ||= 1

  array.each do |i|
    value = options[:a] * (array.index(i) + 1) ** options[:k] + options[:e]

    value.round.times do
      yield i
    end
  end
end