module MissingMath
Constants
- VERSION
Public Class Methods
esieve(n, force_new=false)
click to toggle source
Generates a prime sieve with max value n @param integer n Max value of sieve @param boolean force_new Force new module variable @esieve generation. Default uses module variable @esieve if it hasn't been set Example: MissingMath.esieve(1000)
=> [2, 3, 5, …]
# File lib/missing_math.rb, line 236 def self.esieve(n, force_new=false) if !@esieve || force_new a = (0..n).to_a a[0] = nil a[1] = nil a.each do |i| next unless i break if i * i > n (i * i).step(n, i) { |m| a[m] = nil} end @esieve = a.compact end return @esieve end
fibonacci(n, true_fib=true, force_new=false)
click to toggle source
Generates an array holding an n-length fibonacci sequence @param integer n Length of sequence to generate @param boolean true_fib Use the true fibonacci sequence (0, 1, 1, 2…) or skip the first two values (1, 2, 3, 5…). Default true @param boolean force_new Force new module variable @fib generation. Default uses module variable @fib if it hasn't been set Example: MissingMath.fibonacci(5)
=> [0, 1, 1, 2, 3]
# File lib/missing_math.rb, line 256 def self.fibonacci(n, true_fib=true, force_new=false) if !@fib || force_new @fib = true_fib ? [0, 1] : [1, 2] while @fib.length < n @fib << @fib[-1] + @fib[-2] end end return @fib end