#!/usr/bin/env python3 from itertools import product def format_polynom(*coeffs, vars=("", "x", "y")): return ( "".join( # VVV rule #3 VVV rule #1 VVV rule #3 rule #5 VVV ("{:+}".format(c) if abs(c) != 1 or not v else "-" if c < 0 else "+") + v if c # rule #2 else "" for c, v in zip(coeffs, vars) ).lstrip("+") # rule #4 or "0" # rule #2 ) for coeffs in product(range(-2, 3), repeat=3): print(*coeffs, "->", format_polynom(*coeffs))
Standard input is empty
-2 -2 -2 -> -2-2x-2y -2 -2 -1 -> -2-2x-y -2 -2 0 -> -2-2x -2 -2 1 -> -2-2x+y -2 -2 2 -> -2-2x+2y -2 -1 -2 -> -2-x-2y -2 -1 -1 -> -2-x-y -2 -1 0 -> -2-x -2 -1 1 -> -2-x+y -2 -1 2 -> -2-x+2y -2 0 -2 -> -2-2y -2 0 -1 -> -2-y -2 0 0 -> -2 -2 0 1 -> -2+y -2 0 2 -> -2+2y -2 1 -2 -> -2+x-2y -2 1 -1 -> -2+x-y -2 1 0 -> -2+x -2 1 1 -> -2+x+y -2 1 2 -> -2+x+2y -2 2 -2 -> -2+2x-2y -2 2 -1 -> -2+2x-y -2 2 0 -> -2+2x -2 2 1 -> -2+2x+y -2 2 2 -> -2+2x+2y -1 -2 -2 -> -1-2x-2y -1 -2 -1 -> -1-2x-y -1 -2 0 -> -1-2x -1 -2 1 -> -1-2x+y -1 -2 2 -> -1-2x+2y -1 -1 -2 -> -1-x-2y -1 -1 -1 -> -1-x-y -1 -1 0 -> -1-x -1 -1 1 -> -1-x+y -1 -1 2 -> -1-x+2y -1 0 -2 -> -1-2y -1 0 -1 -> -1-y -1 0 0 -> -1 -1 0 1 -> -1+y -1 0 2 -> -1+2y -1 1 -2 -> -1+x-2y -1 1 -1 -> -1+x-y -1 1 0 -> -1+x -1 1 1 -> -1+x+y -1 1 2 -> -1+x+2y -1 2 -2 -> -1+2x-2y -1 2 -1 -> -1+2x-y -1 2 0 -> -1+2x -1 2 1 -> -1+2x+y -1 2 2 -> -1+2x+2y 0 -2 -2 -> -2x-2y 0 -2 -1 -> -2x-y 0 -2 0 -> -2x 0 -2 1 -> -2x+y 0 -2 2 -> -2x+2y 0 -1 -2 -> -x-2y 0 -1 -1 -> -x-y 0 -1 0 -> -x 0 -1 1 -> -x+y 0 -1 2 -> -x+2y 0 0 -2 -> -2y 0 0 -1 -> -y 0 0 0 -> 0 0 0 1 -> y 0 0 2 -> 2y 0 1 -2 -> x-2y 0 1 -1 -> x-y 0 1 0 -> x 0 1 1 -> x+y 0 1 2 -> x+2y 0 2 -2 -> 2x-2y 0 2 -1 -> 2x-y 0 2 0 -> 2x 0 2 1 -> 2x+y 0 2 2 -> 2x+2y 1 -2 -2 -> 1-2x-2y 1 -2 -1 -> 1-2x-y 1 -2 0 -> 1-2x 1 -2 1 -> 1-2x+y 1 -2 2 -> 1-2x+2y 1 -1 -2 -> 1-x-2y 1 -1 -1 -> 1-x-y 1 -1 0 -> 1-x 1 -1 1 -> 1-x+y 1 -1 2 -> 1-x+2y 1 0 -2 -> 1-2y 1 0 -1 -> 1-y 1 0 0 -> 1 1 0 1 -> 1+y 1 0 2 -> 1+2y 1 1 -2 -> 1+x-2y 1 1 -1 -> 1+x-y 1 1 0 -> 1+x 1 1 1 -> 1+x+y 1 1 2 -> 1+x+2y 1 2 -2 -> 1+2x-2y 1 2 -1 -> 1+2x-y 1 2 0 -> 1+2x 1 2 1 -> 1+2x+y 1 2 2 -> 1+2x+2y 2 -2 -2 -> 2-2x-2y 2 -2 -1 -> 2-2x-y 2 -2 0 -> 2-2x 2 -2 1 -> 2-2x+y 2 -2 2 -> 2-2x+2y 2 -1 -2 -> 2-x-2y 2 -1 -1 -> 2-x-y 2 -1 0 -> 2-x 2 -1 1 -> 2-x+y 2 -1 2 -> 2-x+2y 2 0 -2 -> 2-2y 2 0 -1 -> 2-y 2 0 0 -> 2 2 0 1 -> 2+y 2 0 2 -> 2+2y 2 1 -2 -> 2+x-2y 2 1 -1 -> 2+x-y 2 1 0 -> 2+x 2 1 1 -> 2+x+y 2 1 2 -> 2+x+2y 2 2 -2 -> 2+2x-2y 2 2 -1 -> 2+2x-y 2 2 0 -> 2+2x 2 2 1 -> 2+2x+y 2 2 2 -> 2+2x+2y