斑马问题

来源:互联网 发布:手机淘宝怎么添加客服 编辑:程序博客网 时间:2024/04/28 00:10
    今天我们的演化计算老师出了一道题:
    来自五个不同国家的人,住在五座不同颜色的房子里,喜欢喝五种不同的饮料,抽五种不同牌子的香烟,养五种不同的宠物。提示:①英国人住在红房子里;②瑞典人养了一条狗;③丹麦人喝茶;④绿房子在白房子左边;⑤绿房子主人喝咖啡;⑥抽DAN MALL烟的人养了一只鸟;⑦黄房子主人抽DUNHILL烟;⑧住在中间房子里的人喝牛奶;⑨挪威人住第一见房子;⑩抽混合烟的人住在养猫的人的旁边;11)养马的人住在抽DUNHILL烟的人旁边;12)抽BLUE.烟的人喝啤酒;13德国人抽的香烟是PRINCE14) 挪威人住在蓝房子旁边;15)抽混合烟的人的邻居喝矿泉水;问:谁养鱼。
    要作c实现。
    我想了半开才的点头绪。他又要用到ESP,杂交的方法。我用我的穷举。管他呢。他说用穷举给良。用他的方法给优......
    我的方法如下:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include<stdlib.h>

enum man{
    struct character{
        enum _color{red,yellow,blue,white,green}color,b1=yellow;
        enum _order{1,2,3,4,5}order,b2=2;
        enum _drink{tea,milk,coffen,beer,spring}drink,b3=milk;
        enum _peit{dog,horse,cat,fish,bird}peit,b4=horse;
        enum _tobacco{pr,da,d,mi,bl}tobacco}tobacco,b5=da;
                    }en,da,de,nu,ru;
        }a[4][4],i[4],c;

en.color=red;
da.drink=tea;
nu.order=1;
de.tobacco=pr;
ru.peit=dog;

void degetcolor();
void dagetcolor();
void nugetcolor();
void rugetcolor();
void engetcolor();
void degetorder();
void dagetorder();
void engetorder();
void nugetorder();
void rugetorder();
void degetpeit();
void dagetpeit();
void nugetpeit();
void rugetpeit();
void engetpeit();
void degetdrink();
void dagetdrink();
void nugetdrink();
void rugetdrink();
void engetdrink();
void degettobacco();
void dagettobacco();
void nugettobacco();
void rugettobacco();
void engettobacco();
void jugeorder();
void jugecolor();
void jugedrink();
void jugetobacco();
void jugepeit();
void jugeorderhost();
void jugecolorhost();
void jugedrinkhost();
void jugetobaccohost();
void jugepeithost();

void dagetorder()
{
     for(;b2<=5;b2++) {da.order=b2;return da.order;}
}

void degetorder()
{
     for(;b2<=5;b2++) {de.order=b2;return de.order;}
}

void engetorder()
{
     for(;b2<=5;b2++) {en.order=b2;return en.order;}
}

void rugetorder()
{
     for(;b2<=5;b2++) {ru.order=b2;return ru.order;}
}

void dagetcolor()
{
     for(;b1<=green;b1++) {da.color=b2;return da.color;}
}

void degetcolor()
{
     for(;b1<=green;b1++) {de.color=b2;return de.color;}
}

void nugetcolor()
{
     for(;b1<=green;b1++) {nu.color=b2;return nu.color;}
}

void rugetcolor()
{
     for(;b1<=green;b1++) {ru.color=b2;return ru.color;}
}

void degetdrink()
{
     for(;b3<=spring;b3++) {de.drink=b3;return de.drink;}
}

void engetdrink()
{
     for(;b3<=spring;b3++) {en.drink=b3;return en.drink;}
}

void nugetdrink()
{
     for(;b3<=spring;b3++) {nu.drink=b3;return nu.drink;}
}

void rugetdrink()
{
     for(;b3<=spring;b3++) {ru.drink=b3;return ru.drink;}
}

void dagettobacco()
{
     for(;b5<=bl;b5++) {da.tobacco=b5;return da.tobacco;}
}

void engettobacco()
{
     for(;b5<=bl;b5++) {en.tobacco=b5;return en.tobacco;}
}

void nugettobacco()
{
     for(;b5<=bl;b5++) {nu.tobacco=b5;return nu.tobacco;}
}

void rugettobacco()
{
     for(;b5<=bl;b5++) {ru.tobacco=b5;return ru.tobacco;}
}

void dagetpeit()
{
     for(;b4<=bird;b4++) {da.peit=b4;return da.peit;}
}

void degetpeit()
{
     for(;b4<=bird;b4++) {de.peit=b4;return de.peit;}
}

void engetpeit()
{
     for(;b4<=bird;b4++) {en.peit=b4;return en.peit;}
}

void nugetpeit()
{
     for(;b4<=bird;b4++) {nu.peit=b4;return nu.peit;}
}

void jugeorder()
{
     for(i1=0;i1<5;i1++)
        {engetorder();
         for(i2=0;i2<5;i2++)
            {dagetorder();
             if(da.order==en.order) continue;
             for(i3=0;i3<5;i3++)
                 {degetorder();
                  if(de.order==da.order||de.order==en.order) continue;
                  for(i4=0;i4<5;i4++)
                     {rugetorder();
                      if(ru.order==de.order||ru.order==da.order||ru.order==en.order) contiune;
                      return 1;
                      }
                  }
              }
         }
}

void jugettobacco()
{
     for(i1=0;i1<5;i1++)
        {engettobacco();
         for(i2=0;i2<5;i2++)
            {dagettobacco();
             if(da.tobacco==en.tobacco) continue;
             for(i3=0;i3<5;i3++)
                 {nugettobacco();
                  if(nu.tobacco==da.tobacco||nu.tobacco==en.tobacco) continue;
                  for(i4=0;i4<5;i4++)
                     {rugettobacco();
                      if(ru.tobacco==nu.tobacco||ru.tobacco==da.tobacco||ru.tobacco==en.tobacco) contiune;
                      return 1;
                      }
                  }
              }
         }
}

void jugecolor()
{
     for(i1=0;i1<5;i1++)
        {nugetcolor();
         for(i2=0;i2<5;i2++)
            {dagetcolor();
             if(da.color==nu.color) continue;
             for(i3=0;i3<5;i3++)
                 {degetcolor();
                  if(de.color==da.color||de.color==nu.color) continue;
                  for(i4=0;i4<5;i4++)
                     {rugetcolor();
                      if(ru.color==de.color||ru.color==da.color||ru.color==nu.color) contiune;
                      return 1;
                      }
                  }
              }
         }
}

void jugedrink()
{
     for(i1=0;i1<5;i1++)
        {engetdrink();
         for(i2=0;i2<5;i2++)
            {nugetdrink();
             if(nu.drink==en.drink) continue;
             for(i3=0;i3<5;i3++)
                 {degetdrink();
                  if(de.drink==nu.drink||de.drink==en.drink) continue;
                  for(i4=0;i4<5;i4++)
                     {rugetdrink();
                      if(ru.drink==de.drink||ru.drink==nu.drink||ru.drink==en.drink) contiune;
                      return 1;
                      }
                  }
              }
         }
}

void jugepeit()
{
     for(i1=0;i1<5;i1++)
        {engetpeit();
         for(i2=0;i2<5;i2++)
            {dagetpeit();
             if(da.peit==en.peit) continue;
             for(i3=0;i3<5;i3++)
                 {degetpeit();
                  if(de.peit==da.peit||de.peit==en.peit) continue;
                  for(i4=0;i4<5;i4++)
                     {nugetpeit();
                      if(nu.peit==de.peit||nu.peit==da.peit||nu.peit==en.peit) contiune;
                      return 1;
                      }
                  }
              }
         }
}

void jugeorderhost()
{
     for(c=en;c<=ru;c++)
        {if(c.order==1) a[0][0]=c;
         if(c.order==2) a[0][1]=c;
         if(c.order==3) a[0][2]=c;
         if(c.order==4) a[0][3]=c;
         if(c.order==5) a[0][4]=c;
        }
}

void jugecolorhost()
{
     for(c=en;c<=ru;c++)
        {if(c.color==red) a[1][0]=c;
         if(c.color==blue) a[1][1]=c;
         if(c.color==yellow) a[1][2]=c;
         if(c.color==green) a[1][3]=c;
         if(c.color==white) a[1][4]=c;
        }
}

void jugedrinkhost()
{
     for(c=en;c<=ru;c++)
        {if(c.drink==tea) a[2][0]=c;
         if(c.drink==milk) a[2][1]=c;
         if(c.drink==spring) a[2][2]=c;
         if(c.drink==coffen) a[2][3]=c;
         if(c.drink==beer) a[2][4]=c;
        }
}

void jugepeithost()
{
     for(c=en;c<=ru;c++)
        {if(c.peit==dog) a[3][0]=c;
         if(c.peit==cat) a[3][1]=c;
         if(c.peit==horse) a[3][2]=c;
         if(c.peit==fish) a[3][3]=c;
         if(c.peitr==bird) a[3][4]=c;
        }
}

void jugetobaccohost()
{
     for(c=en;c<=ru;c++)
        {if(c.tobacco==pr) a[4][0]=c;
         if(c.tobacco==da) a[4][1]=c;
         if(c.tobaccor==d) a[4][2]=c;
         if(c.tobacco==mi) a[4][3]=c;
         if(c.tobacco==bl) a[4][4]=c;
        }
}
        
main()
{
   for(i=0;i<5;i++)
      {
       degetcolor();
       dagetcolor();
       nugetcolor();
       rugetcolor();
       engetcolor();
       degetorder();
       dagetorder();
       engetorder();
       nugetorder();
       rugetorder();
       degetpeit();
       dagetpeit();
       nugetpeit();
       rugetpeit();
       engetpeit();
       degetdrink();
       dagetdrink();
       nugetdrink();
       rugetdrink();
       engetdrink();
       degettobacco();
       dagettobacco();
       nugettobacco();
       rugettobacco();
       engettobacco();
       jugeorder();
       jugecolor();
       jugedrink();
       jugetobacco();
       jugepeit();
       jugeorderhost();
       jugecolorhost();
       jugedrinkhost();
       jugetobaccohost();
       jugepeithost();
       if(
 
原创粉丝点击