Created — forked from anonymous/isleyaardvark.rb

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist
View isleyaardvark.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
# This class prepares a pretty-print version of a polynomial with a minimum of 2 coefficients
#
class Polynomial
# Create the polynomial object and store the coefficients
#
def initialize(args)
raise ArgumentError, "Need at least 2 coefficients" if args.length < 2
@args = args
end
 
# Returns a string version of the polynomial, simplifies coefficients of 1x^n to x^n,
# simplifies x^1 to x and ax^0 to a. Doesn't include elements with a coefficient of 0.
# If all coefficients = 0, returns "0".
#
def to_s
polynomial = []
@args.each_with_index do |coefficient, index|
unless coefficient.zero?
polynomial << coefficient.to_s + "x^" + (@args.length - 1 - index).to_s
end
end
unless polynomial.empty?
return polynomial.join("+").gsub(/\+\-/, '-').gsub(/(^|[\+\-])[1]x/, '\1x').gsub("x^1", 'x').gsub("x^0", '')
# ^| in regex handles case where 1x is at beginning of line, otherwise it's -1x and is covered by rest of regex
else
return "0"
end
end
 
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.