Bài toán xếp xếp hậu là Việc bịa tám quân hậu trên bàn cờ vua kích thước 8×8 sao mang đến không tồn tại quân hậu này hoàn toàn có thể “ăn” được quân hậu không giống, hoặc rằng không giống lên đường ko quân hậu này với để di chuyển theo quy tắc cờ vua.
Lời giải của Việc là một trong cơ hội xếp tám quân hậu bên trên bàn cờ sao mang đến không tồn tại nhì quân này đứng bên trên thẳng hàng, hoặc nằm trong cột hoặc nằm trong đàng chéo cánh. Bài toán tám quân hậu hoàn toàn có thể tổng quát tháo hóa trở thành Việc đặt n quân hậu bên trên bàn cờ n×n(n ≥ 4).
Bạn đang xem: bài toán xếp hậu

Hình hình ảnh phía trên tế bào miêu tả một tiếng giải của Việc xếp 11 quân hậu bên trên 1 bàn cờ vua 11*11. Vậy tất cả chúng ta nằm trong hợp tác vô mò mẫm tiếng giải mang đến Việc này.
Giải bài toán xếp hậu vì chưng đệ quy vô C/C++
- Để tiện trình diễn tao sử dụng thay đổi i nhằm khắc ghi những mặt hàng kể từ bên trên xuống ( 1 cho tới n). Dùng thay đổi j nhằm khắc ghi những cột kể từ trái khoáy lịch sự nên ( 1 cho tới n );
- Các thành phần phía trên thẳng hàng với chỉ số mặt hàng vì chưng nhau;
- Các thành phần phía trên nằm trong cột với chỉ số cột vì chưng nhau;
- Để tiện mang đến việc in thành quả rời khỏi thì tao chỉ in rời khỏi chỉ số những cột tuần tự động bám theo những mặt hàng kể từ bên trên xuống.
- Điều khiếu nại để tại vị một quân hậu đích khu vực là không tồn tại 2 bên trên và một cột ( chỉ số cột không giống nhau). Không với 2 quân hậu này nằm trong phía trên một đàng chéo cánh.
Ý tưởng:
- Đầu tiên tao bịa quân hậu loại nhất vô những cột bên trên mặt hàng 1 ( với n cơ hội bịa ).
- Thử bịa quân hậu 2 vào cụ thể từng cột ở mặt hàng 2 sao mang đến không trở nên quân hậu 1 kiểm soát. Với từng địa điểm của quân hậu này tao lại test bịa quân hậu loại tía vô những cột sao mang đến không trở nên những quân hậu trước kiểm soát.
- Sau lúc để kết thúc quân hậu loại tám thì in rời khỏi một cơ hội bịa.
Code C
#include<stdio.h> #include<math.h> int a[20]; bool Ok(int x2,int y2){ //kiểm tra cơ hội bịa với vừa lòng không for(int i = 1; i < x2 ;i++) if(a[i] == y2 || abs(i-x2) == abs(a[i] - y2) ) return false; //Nếu đánh giá không còn những tình huống vẫn ko sai thì trả về true return true; } void Xuat(int n){ //in rời khỏi một kết quả for(int i=1;i<=n;i++) printf(" %d",a[i]); printf("n"); } void Try(int i,int n){ for(int j = 1;j<=n;j++){ // test bịa quân hậu vô những cột từ là 1 cho tới n if(Ok(i,j)){ //nếu cơ hội bịa này vừa lòng thì khắc ghi vị trí a[i] = j; //nếu bịa kết thúc quân hậu loại n thì xuất rời khỏi một kết quả if(i==n) Xuat(n); Try(i+1,n); } } } int main(){ int n = 8;// ở phía trên bản thân mang đến Việc là 8 quân hậu bên trên bàn 8*8 Try(1,n); return 0; }
Sau Khi chạy thì tiếp tục rời khỏi những thành quả ( tôi chỉ copy một không nhiều thành quả thôi )
Xem thêm: viết đoạn văn kể lại một hoạt động ngoài trời
1 5 8 6 3 7 2 4 1 6 8 3 7 4 2 5 1 7 4 6 8 2 5 3 1 7 5 8 2 4 6 3
Mình phân tích và lý giải một không nhiều câu mệnh lệnh vô lịch trình trên
Xem thêm: mô hình hiện đại mô tả sự chuyển động của electron trong nguyên tử như thế nào
- ( x2, y2) là địa điểm nhưng mà quân hậu tiếp tục bịa vô. Như vậy tất cả chúng ta con người ta vẫn bịa kết thúc
x2-1
quân hậu rồi. - Để đánh giá quân hậu này còn có bị những quân hậu trước kiểm soát hay là không. Ta tiếp tục đánh giá theo lần lượt những quân hậu ở trước với quân hậu vừa phải mới mẻ bịa vô.
- Chỉ cần phải bị một quân hậu không giống kiểm soát thì địa điểm này sẽ không thể bịa vô (
return false
). a[i] == y2
dùng nhằm đánh giá coi quân hậu này còn có ở và một cột với những quân hậu trước cơ.abs(i - x2) == abs( a[i] - y2 )
dùng để đánh giá coi quân hậu này còn có phía trên đàng chéo cánh của những quân hậu trước cơ hay là không. Các chúng ta cũng có thể vẽ hình rời khỏi và tự động minh chứng nhé !
Bài viết lách bản thân cho tới đó là kết thúc đẩy. Cám ơn chúng ta vẫn bám theo dõi !
Reader Interactions
��e�links.tar���n�DF��)"�$�:!$n6,,�B�mӶ�v5�i ���M�˝���TU� �5Rf|>_�\��|4)ʮ^�e�����oe[\-�������g�w�W7���o��W7!w���\\��6t��],^�Z����/�����������~�����~�4*.��˶.�m�������y�V�P�zYԖ=����V�������r�/���� �oW��Ǩ� '^��Ǹ1�����I�S��u_�U_ ��]355��}ه�:"{�a���l��)��(z ��9\�pUv�����;�>����W�W qg��!XӆX�pm��Ue=������wm�*�ڸ��c�?�[�"�h�5�Ӈ?��͠��n7C��������~��}Sv���>u�1zh嚩wbl�|U[��>�+6��0��� }������p��&�&�1��E��ݔ�V�_��s�=��m��{��o\&e;>_�����ǻد�G��F�����A�8�)���*z;a��Dݲ�z�Z���De�9qh3�@�i��k+�6S�g�+��ҵ���]��ְ�%�Dᶅ kX�*�=�q�X��r��]c�,�l$�a��f����Ct��c]�j�ue��ܾMtS5n�|I�pA���6Ubwa@�ޑ��1lӣn�4�����mϱoG�m��ˏ�KܑkB�)�ib{�ѾuM���P�����+w6�C�ڢ�!�*���s�`��e�n�)�W6��!W9�DMk/�H�uÃ���S���JL��P���2�������)}g����D�� �_�s���x%��-�����r:+��_��靸;$����WVUj����V&�o勹�D��c���M� ������uz �W�����1���B�ڈLL�=�1�M튏��Z��������x:�a�?�S+�j8ԅ�?��N��r��߅��~�v�q���q|�?Z5��˫E��t�˫� �o����}�e��BO�r]�ug�� &{vct�Wur�b�u,7I�/�$; '0���v�ᆓ�O�U{�/�X'n; 0kWj}�+�������~���&$� ��y����ѓv߾���aTY��>[���K�t�5ki���b�PKG�O�}��}�=�� >�0�m�Wv>��Z�L =-��i%�UA�ח|��{;{_�E�����S���d��V�/���菟���������}���������~w{w{o��������Ɩ�ϣ���h�������)�i�L��I�E�4��1�?�d`�7~Β:��o3� x�?7��y'� ��x� �S*���JP � �1ՠ97��`�#��$�g�t� �T��@�&�g( ��%d��P��'TH��L���P���X����P8��/$�0$�1�2$�3T ) 9e �6�7$�8d���C��3L����P��?T�Q��)D�O9DaJD�7���Ii�;��H�Q�D��*1[d;�>�D��M�N�OD�BQ�FQ8��SNKEqZE�VTB^�Tb��fQ8���[T�r���(3�J7�3zR0*Eè�IŨ�iɨ� ˨�4#��D�M#1U�8]#���Yۨu�0}���c��S�����%�uT�ڑ�ޑ�GB�G&��{|)g��}T��Q��T��H% R����Wo����o������n��������������F������������#��#��m�\� ���`| �x�H��F�=Xg�J�w�Y����(�ޑ���0}�8m�`�� �� �=�"�x���
M�6M�.M�&��M�M��C#����D&��g�Н g͙2�f�IkvLd��2f3_���e�OW&HS&JOFNK&JG&CF(?&;F*7Fp�M�9�h�x0��0��`Ƈ) D&N,$���4`G��_ �~)�v_�4_G��^&�v��h��9�����?�����5�����iTP� ���Q � S���K�Q��(��e��*hN�g� J���PJ��֨��:wb*!rNHJ!���x!(�Di�D��^�R�r(u��R�����":��!R��(�Ò���$R�� j"�'RF��H��P���H��H�����H��H��H��H�ʈ��H�҈ Z#d��������#F����H�H����H����IX)ɥ���It.�^�7�H J#�#1#�H�$$����je�m�(t)}�J"4J�9�� ��hJ* �* g���J�KD4K�TK �-�S.��.�~V0�%��I!&��I!:&�dR$k��f"�g�h�i�j"�kR�����I�&Q�&! 'b'�0��p�!��N��:�S;��;)A�$�1O P=��=�Q>�e�"�O���4P ����A��n��_������ݙ �ۏ?>�������è��{"�B�"t�T�4�$u�ۡ����!J�̝R�/AOB�i=�H����Y)���������;Ҵ������[>AJ>��S��/q��J��� �#�d�e��)�����Ȫ=%h���#��cDZO�VO�RO�NO�JO F��BOX>�D:��6O�2O�.O8����c�"O�O�o���C�O���dn�D(���N�������w�Kw'Hu'���9'qBoLj��ډH�e�a�ZEe'@c'Ha'H_G.]'@['��u��� R�i�ԉRԉ�ӉQӉ�� Rґ�� S� �4t$�{^���IJzN�9ᬜS�nN8�掉��SBbN`�崟ZN�i�)�D��ȩ�Di��!���D��He���N�i?GU�����x8��h��)������^���S��s�M�7��M�����������/��1���d��
Bình luận