1

免责声明:找到带有方框的主题,并且那里的算法仅适用于该特定问题。

我正在制作一个递归回溯数独求解器,但我无法分配与给定单元格相关的框。

假设我们有一个带有 2x2 单元大小的盒子的 4x4 板。拟合算法将是(来自相关主题):

int numMajorRows = 2;
int numMajorCols = 2;  
int width = 2;

// assuming row and col also start at 1.  
int squareNumber(int row, int col) {
  int majorRow = (row-1) / width;  // zero based majorRow
  int majorCol = (col-1) / width;  // zero based majorCol
  return majorCol + majorRow * numMajorCols + 1;
}

但是,如果假设我们有一个 6x6 板和 2x3 单元大小的盒子,算法会是什么样子?我只是似乎无法弄清楚..

提前致谢 :-)

编辑:[部分解决]我蛮力强迫它,强制盒子的高度总是大于宽度。不过,我对此很感兴趣:)

4

1 回答 1

0

给定的算法仅适用于方形框。现在你有一个矩形框,你需要一个额外的高度属性(给定的示例算法在需要单元格高度的地方重用宽度参数 - 可以使用正方形,一般来说不能使用矩形)

于 2011-03-25T10:20:34.890 回答