어떻게 8/4 퀸즈 문제를 구현할 수 있습니까? DFS/BFS를 사용해야할까요? DF가 더 좋을 것 같습니다. 어떤 의사 코드/안내선을 줄 수 있습니까?8 퀸즈 문제
8 퀸즈 문제
답변
스택 및 백 트랙킹을 사용하면 가장 쉬운 방법은 재귀를 통한 것입니다.
는 이러한 다른 SO 게시물을 참조 :예, 알고 있습니다 만, 의사 코드를 제공 할 수 있습니까? – akshay
거기에 구현이 있습니다. 해결책을 찾았을 때 무엇이 필요합니까? –
내 솔루션에는 2 개의 사전 정의 된 논리가 있으며 행에 여왕이 하나만 있으며 열에는 여왕이 하나뿐입니다. 길이가 8 인 1 차원 배열이 있습니다. 모든 배열 값은 0-7 중 하나를 설정하지만 모든 값은 정확히 한 번만 사용됩니다 (값 0-7의 순열) arr [0] = 5 값은 여왕을 의미합니다. 첫 번째 열의 열 6에서 arr [1] = 3 값은 두 번째 열에서 열 4의 여왕을 의미하며 은 배열 검사에서 교차 위반 값을 제어하기 때문에 검사 행 또는 행 위반이 필요 없습니다. 당신이 필요로하는 순열과 교차 위반 함수들 (C++ STL은 순열 함수를가집니다.)
퀸즈가 (i, j)와 (k, l) 좌표에 있다면 각각을 공격 할 수 있습니다 다른 경우
- 제가 = K (동일한 행)
- J = L (동일한 컬럼)
| IK | = | JL | (대각선 방향), | | saurabh 학교
에서 참조공극 NQueens (K, N) {
for(i=1 to n) { if(place(k,i)) //checking if queen can be placed at (k,i) { x[k]=i; if(k==n) then write (x[1:n]); else Nqueens(k+1,n); } } }
*
bool place(k,i)
{
//returns true if the queen can be placed at k-th row and i-th column
//x[] is a global array with first (k-1) values set already.
//x[p]=q means a queen is at location (p,q)
for(j=1 to k-1)
{
if(x[j]==i)||(ABS(x[j]-i)==ABS(j-k)) //checking if another queen in same column or diagonally
return false;
}
return true;
}
는 역행을 사용하여 모든 가능한 게재 인쇄의 절대 값을 나타낸다
- 1. PHP utf-8 문제
- 2. CSS - IE7 & 8 문제
- 3. IE 8 캐싱 문제
- 4. UTF-8 BOM 문제
- 5. IE 8 JQuery와 문제
- 6. ColdFusion 8 인쇄 문제
- 7. UTF-8 인코딩 문제
- 8. IE 8 인코딩 문제
- 9. 플래시 8 + setTimeout 문제
- 10. BlockingSenderDestination.sendReceive() UTF-8 문제
- 11. UTF-8 데이터베이스 문제
- 12. 인코딩 문제 UTF-8
- 13. 8 퀴즈 문제
- 14. 에 extjs 문제 8
- 15. 인코딩 문제 (UTF-8) PHP
- 16. MyISAM utf-8 인코딩 문제
- 17. php utf-8 인코딩 문제
- 18. UL LI CSS 문제 8
- 19. XElement 및 UTF-8 문제
- 20. Python : UTF-8 문제 (다시 ...)
- 21. IE 8 및 패딩 문제
- 22. Internet Explorer 8 : 목록 문제
- 23. UTF-8/UTF-16 문제
- 24. 인터넷 익스플로러 관련 문제 8
- 25. IE 8/9 ClearType 문제
- 26. 블랙 베리 UTF-8 문제
- 27. Saxon 8 (Java 버전) 문제
- 28. 작은 MCE Safari, IE <8 문제
- 29. Flex 3/Coldfusion 8 번호 관련 문제
- 30. IE 8 - font-family 표시 문제
취향은 숙제를 좋아합니다. – gabuzo
예, 과제 ftw! 숙제를하는 가장 좋은 방법은 실제로 스스로하는 것입니다. –
BFS *는 여왕 문제에 대한 * 모든 * 해결책을 찾고 싶다면 재미있을 수 있습니다. 가능한 한 빨리 모든 솔루션을 찾으려면 DFS가 올바른 선택입니다. –