Building maths problems backwards, to generate synthetic problems

I think a great way to build new maths problems would be to build code that generates problems backwards - i.e. starting with the result, and adding ‘previous’ steps, until reaching the problem statement at the end.


  1. Generate a random result, in this example, the result will be 10.
  2. Add some math operation or function to it. Exemple: square the number: 100.
  3. Add another step. Example: Add 3: 103.
  4. Repeat step 2 a few times, adding extra complexity.
  5. Create the problem statement. Example: sqrt(x - 3) = 10, find x.
    Then, you feed GPT the problem and ask it to describe the steps to find the result, 10.
    Check each step, if it is correct, proceed to checking the next step. If it is wrong, delete the step, etc.
    Of course, the actual problem generation could add more complex operations and functions, as well as complex numbers, etc.

This is a great workflow you’ve developed!

1 Like

That’s generally how most problems are made in order to ensure the answers come out nicely.

It also happens to be a great way to teach students how to solve problems as it has the added benefit of de-mystifying the problem.


Sounds like it /is/ a good workflow, then!

1 Like

Agreed - that’s probably how teachers create maths problems for students.
Two benefits of training AI this way, are:

  1. Since we create the steps, wa can directly compare the reasoning (steps) of the AI, when it tries to solve the problem with the actual reasoning they should apply.
  2. IF AI solves it another way, new problems of the exact same type can be created, to validate the new reasoning - that would mean AI has found a new way to solve the same problem (like the AI that found a way to multiply matrices with one less multiplication than the “human algorithm”.
1 Like