数独 - 根据行,列,尺寸(?)和框大小查找当前框(正方形或矩形)

时间:2011-03-25 10:05:21

标签: java algorithm sudoku

免责声明:找到方形框的主题,其中的算法仅适用于该特定问题。

我正在制作一个递归回溯数据求解器,但是我无法指定哪个盒子与给定的单元格相关。

假设我们有一块带有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;
}

然而,如果说我们有一个带有2x3单元大小的盒子的6x6电路板,算法会是什么样子?我似乎无法弄清楚..

提前致谢: - )

编辑:[部分解决] 我粗暴地强迫它,强迫盒子的高度总是大于宽度。不过,我对这个有趣的算法感兴趣:)

1 个答案:

答案 0 :(得分:0)

给定的算法仅适用于方框。现在你有一个矩形框,你需要一个额外的高度属性(给定的示例算法重用宽度参数,其中需要一个单元格高度 - 正方形确定,一般情况下矩形不正常)