Поскольку вы просто размещаете числа случайным образом, ваша головоломка может оказаться в состоянии, когда no new number может удовлетворить то, что вы уже получили. Например:
123| |
456| |
78 |9 |
---+---+---
| |
| |
| |
---+---+---
| |
| |
| |
Возможно, вам понадобится добавить возвратный путь, чтобы ваш алгоритм мог отменить изменения, внесенные при обнаружении такой ситуации.