Sha256: 7bfa9e44c84f91ad6f1dc25ca2e6db3312ebc81a0640831f2304f82947cd9e94

Contents?: true

Size: 617 Bytes

Versions: 201

Compression:

Stored size: 617 Bytes

Contents

module SocialStream
  module Populate

    class << self
      # Yields each element of array y times given by 
      # {power law distribution}[http://en.wikipedia.org/wiki/Power_law]
      # y = ax**k + e
      # 
      # Options: Each constant in the function
      #
      def power_law(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
    end
  end
end

Version data entries

201 entries across 201 versions & 4 rubygems

Version Path
social_stream-0.16.2 base/lib/social_stream/populate.rb
social_stream-base-0.11.1 lib/social_stream/populate.rb
social_stream-0.16.1 base/lib/social_stream/populate.rb
social_stream-base-0.11.0 lib/social_stream/populate.rb
social_stream-0.15.8 base/lib/social_stream/populate.rb
social_stream-base-0.10.11 lib/social_stream/populate.rb
social_stream-0.15.7 base/lib/social_stream/populate.rb
social_stream-base-0.10.10 lib/social_stream/populate.rb
social_stream-0.15.6 base/lib/social_stream/populate.rb
social_stream-base-0.10.9 lib/social_stream/populate.rb
social_stream-0.15.5 base/lib/social_stream/populate.rb
social_stream-base-0.10.8 lib/social_stream/populate.rb
social_stream-0.15.4 base/lib/social_stream/populate.rb
social_stream-base-0.10.7 lib/social_stream/populate.rb
social_stream-0.15.1 base/lib/social_stream/populate.rb
social_stream-0.15.0 base/lib/social_stream/populate.rb
social_stream-base-0.10.6 lib/social_stream/populate.rb
social_stream-0.14.1 base/lib/social_stream/populate.rb
social_stream-base-0.10.5 lib/social_stream/populate.rb
social_stream-0.14.0 base/lib/social_stream/populate.rb