Module: MissingMath
- Defined in:
- lib/missing_math.rb,
lib/missing_math/version.rb
Defined Under Namespace
Constant Summary collapse
- VERSION =
"0.1.4"
Class Method Summary collapse
-
.esieve(n, force_new = false) ⇒ Object
Generates a prime sieve with max value n Example: MissingMath.esieve(1000) => [2, 3, 5, …].
-
.fibonacci(n, true_fib = true, force_new = false) ⇒ Object
Generates an array holding an n-length fibonacci sequence Example: MissingMath.fibonacci(5) => [0, 1, 1, 2, 3].
Class Method Details
.esieve(n, force_new = false) ⇒ Object
Generates a prime sieve with max value n Example: MissingMath.esieve(1000) => [2, 3, 5, …]
236 237 238 239 240 241 242 243 244 245 246 247 248 249 |
# 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) ⇒ Object
Generates an array holding an n-length fibonacci sequence Example: MissingMath.fibonacci(5) => [0, 1, 1, 2, 3]
256 257 258 259 260 261 262 263 264 |
# 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 |