Solving 24
24 is a fun arithmetic game, if arithmetic games are fun.
Choose four numbers between 1 and 9. Make 24 out of them, using addition, subtraction, multiplication, and division, using each number once. For example, (2, 4, 7, 7) is (7+7)*2-4.
Another fun problem is to solve the entire game. The 403 404 solvable problems have 33,483 33,531 solutions [1], treating every possible grouping and order as distinct (((1+2)+3), (1+(2+3)), and ((2+1)+3) are all considered different expressions. So are (1+1) and (1+1) from a problem set containing two 1s.).
#!/usr/bin/env python import solve24 for a in xrange(1, 10): for b in xrange(a, 10): for c in xrange(b, 10): for d in xrange(c, 10): if solve24.is_possible(a, b, c, d): f = open('24/%s%s%s%s.txt' % (a, b, c, d), 'w') for solution in solve24.solve(a, b, c, d): print >> f, solution f.close()
produces a directory of all the solutions.
The solve24 module can do more than solve 24. The _solver
in the code is pretty flexible, and can be adapted to produce possible expressions from pretty much any operators and numbers.
Closing problem: 1, 4, 5, 6. (This is extremely difficult.)
Update: Computers suck. Fixed.