将帅问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将帅问题相关的知识,希望对你有一定的参考价值。


#include<cstdio>
#include<iostream>
using namespace std;
struct{
   int a;
   int b;
}i;

int main(){
    /*
    for(int i=1;i<=9;i++)
        for(int j=1;j<=9;j++)
            if(i%3 == j%3)
                cout<<i<<" "<<j<<endl;
                */
     for(i.a = 1;i.a <= 9;i.a++)
         for(i.b=1;i.b <= 9;i.b++)
             if(i.a % 3==i.b % 3)
                 cout<<i.a<<" "<<i.b<<endl;
    return 0;
}

注释代码是我写的代码 下面是书上给的最优算法,但是这个算法和作者的本意有点区别,
将帅问题是让算出 将和帅 所有不想对的位置(ps:会象棋的应该都知道什么意思),但是这个最优算法算出的答案是将帅相对的位置 所以我感觉应该是我写的那种
个人问题:
书中定义的结构体 打印出来的东西是乱码
struct{
    unsigned char a:4;
    unsigned char b:4;
}i;
希望大牛们临幸到我的博客时能够帮我解答.



以上是关于将帅问题的主要内容,如果未能解决你的问题,请参考以下文章

《编程之美》 1.2 中国象棋将帅问题

清朝北洋时期的保定军校到底成就了多少将帅?

《编程之美》practice

象棋各子走法

位域 (Bit field)

编程之美目录