
Reverse Engineer
You are standing next to a math machine which takes two numerical inputs x and y , and has a single numerical output. It is known that the machine evaluates an expression using x , y , the operators + – * / and brackets . You should recover the expression by using the machine and the inputs of your choice over several turns. x , y and the result you receive are integers. The machine uses real division( / ) in the expression. When dividing by zero, the result will evaluate to "ZeroDivisionError" .
Equivalent expressions will be accepted by the grader. For this the machine evaluates your expression and the hidden expression several times using random values.
In each step your function gets a list with data from the past steps. Each element is a list of three numbers -- x (int), y (int) and output (a fraction as a list or the string "ZeroDivisionError"). The output is represented as a list with two integers - numerator and denominator.
The function...