从数独网格返回解决方案数量的算法

时间:2019-03-09 20:39:21

标签: java np-complete

我正在尝试实现数独库。我做了生成器,现在正在做求解器,功能之一是检查网格的唯一性(返回许多可用的解决方案,超过1个-没有唯一性解决方案)。 我被这个递归函数卡住了,我不能返回数字,只是打印网格...

public static void checkSolutionsNum (Grid grid_) {

    Grid grid = new Grid(grid_); //Makes copy of the the grid .
    int size = grid.getSize(); //Gets the size of the grid.

    Cell cell = grid.getNextEmptyCell();

    if (cell == null) { //Grid is full.
        System.out.println(grid);
    }


    else {
        for (int num = 1 ; num <= size ; num++) {
            cell.setValue(num);
            if (Checker.isAvailableNumberInCell(cell,grid)){
                checkSolutionsNum(grid)
            }
        }
    }
}

这是我目前使用的算法。我希望它返回许多可用的解决方案,而不是打印解决方案。

0 个答案:

没有答案