모든 스도쿠 퍼즐 의 정확한 균일 분포를 생성 하는 방법은 다음과 같습니다. 9x9 그리드를 무작위로 생성 한 다음 올바른 스도쿠 그리드 인 경우에만 유지하십시오.
이 무차별 접근 방식은 균일 한 분포를 보장하지만 임의의 8x8 그리드를 생성 한 다음 나머지 두 줄을 채우는 것만으로 그리드의 확률에 곱할 수 있기 때문에 효율적이지 않습니다 . 이것은 여전히 무작위 분포이지만 여전히 너무 비효율적입니다.917
첫 번째 줄을 강제 한 다음 나머지 그리드를 임의로 생성 한 다음 모든 숫자의 순열을 임의로 선택합니다. 여전히 같은 확률로 모든 그리드를빨리.[1,2,..9]9!
어쩌면 내가 어디로 가고 있는지 알 수 있습니다.이 문제를 영리하게 대답하면 아마도 스도쿠 그리드의 기본 대칭에 대해 궁금해 할 것입니다. 많은 작업 (17) 단서의 최소 수 (스도쿠에 있다는 사실을 증명하기 위해이 방향으로 이루어졌다 이 문서 참조 ) 당신은 갈 수 있습니다 여기에 다음을 사용하여 3,359,232 유사한 그리드 5472730538 개 클래스의 정확한 목록을 볼 수 대칭 :
- 숫자의 순열
- 행의 순열 (밴드와 각 밴드 내부의 행)
- 열도 마찬가지
- 전치
이 프레임 워크를 사용하면 5,472,730,538 클래스 중 하나를 임의로 선택하고 (실제로 6GB로 압축 할 수 있음) 각 대칭의 대표자 중 하나를 각각 중에서 선택할 수 있습니다.9!,64,64,2
편집 : 이것을 불완전한 퍼즐에 적용하려면 그리드의 하위 집합을 임의로 선택하고 솔루션이 스도쿠 솔버에서 고유한지 확인하고 그렇지 않은 경우 다시 시도하십시오. 독특한 솔루션을 가진 불완전한 퍼즐의 수는 두 그리드에 대해 다를 수 있기 때문에 이것은 균일 한 분포 가 아닙니다 . (그렇지 않으면 매우 놀랐습니다)