2011-03-25 2 views
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; 
} 

, 어떤 것 우리는 2 × 3 세포 크기의 상자와 좁은 보드를 가지고 말한다면 같은 알고리즘 모양? 난 그냥

편집 :-) 사전에 .. 그것을 알아 내기 위해

감사를 보일 수 없다 : [일부 해결] 나는 상자의 높이를 강요하는 것은 항상 크게와, 그것을 조금 강제 짐승 너비보다. 그래도이 멋진 알고리즘에 관심이 있습니다.

답변

0

주어진 알고리즘은 사각형 상자에서만 작동합니다. 이제 사각형 상자가 생기고 별도의 높이 속성이 필요합니다. 주어진 예제 알고리즘은 셀 높이가 필요한 곳에서 너비 매개 변수를 재사용합니다. - 사각형에서는 OK, 사각형에서는 일반적으로 OK가 아닙니다.

+0

예, 저는 높이 속성을 어딘가에 사용해야한다는 것을 알고 있습니다. 나는 보드 크기가 임의적이라는 텍스트를 추가해야했기 때문에 박스의 제곱이 될 수도 있고 직사각형 박스 일 수도있다. – binusr