module Polymath::Nomial

Public Class Methods

random_polynomial(n=3, cof_max: 100, skip_chance: 0.25) click to toggle source
# File lib/polymath/nomial/polynomial.rb, line 6
def self.random_polynomial(n=3, cof_max: 100, skip_chance: 0.25)
  degree = Integer(Random.rand() * n) + 1
  (0..degree).map { |deg|
    if Random.rand <= 1.0 - skip_chance
      "#{Integer(Random.rand * cof_max) - (cof_max / 2)}x^#{deg}"
    else
      "0"
    end
  }.compact.shuffle.join("+")
end