• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            /*愛(ài)因斯坦的思考題
            在網(wǎng)上看到了個(gè)有趣的邏輯推理題,愛(ài)因斯坦聲稱(chēng)世界上只有2%的人能解出:

            有五個(gè)具有五種不同顏色的房間排成一排;

            每個(gè)房間里分別住著一個(gè)不同國(guó)籍的人;

            每個(gè)人都在喝一種特定品牌的飲料,抽一特定品牌的煙,養(yǎng)一特定的寵物;

            沒(méi)有任意兩個(gè)人在抽相同品牌的香煙,或喝相同品牌的飲料,或養(yǎng)相同的寵物。

              問(wèn)題:誰(shuí)在養(yǎng)魚(yú)作為寵物?

              愛(ài)因斯坦給出如下線索:


            英國(guó)人住在紅色的房子里;

            瑞典人養(yǎng)狗作為寵物;

            丹麥人喝茶;

            綠房子緊挨著白房子,在白房子的左邊;

            綠房子的主人喝咖啡;

            抽Pall Mall牌香煙的人養(yǎng)鳥(niǎo);

            黃色房子里的人抽Dunhill牌香煙;

            住在中間那個(gè)房子里的人喝牛奶;

            挪威人住在第一個(gè)房子里面;

            抽Blends牌香煙的人和養(yǎng)貓的人相鄰;

            養(yǎng)馬的人和抽Dunhill牌香煙的人相鄰;

            抽BlueMaster牌香煙的人喝啤酒;

            德國(guó)人抽Prince牌香煙;

            挪威人和住在藍(lán)房子的人相鄰;

            抽Blends牌香煙的人和喝礦泉水的人相鄰。

                      
                       國(guó)家           房子           寵物           飲料           香煙
                       挪威           黃色             貓         礦泉水        Dunhill
                       丹麥           藍(lán)色             馬             茶         Blends
                       英國(guó)           紅色             鳥(niǎo)           牛奶       PallMall
                       德國(guó)           綠色             魚(yú)           咖啡         Prince
                       瑞典           白色             狗           啤酒     BlueMaster
            */
            /*
            算法思路:
            以房子的位置為主序,把國(guó)籍,顏色,寵物,飲料,香煙都作為該房子的一個(gè)成員,每一個(gè)成員都有可能
            處在任何位置,為所有成員窮舉每一個(gè)位置,再根據(jù)已知條件進(jìn)行適當(dāng)剪枝,找到唯一的解
            */

            #include <iostream>
            #include <string>
            #include <fstream>

            using namespace std;

            int main(void)
            {
             string Title[5] = {"國(guó)籍","顏色","寵物","飲料","香煙"};
             struct {
              string nation;
              string color;
              string pet;
              string drink;
              string cigarette;
             } House[5];//房子從左到右編號(hào)

             House[0].nation = "挪威";//挪威人住在第一個(gè)房子里面
             House[1].color = "藍(lán)色";//挪威人和住在藍(lán)房子的人相鄰,即藍(lán)房子是第2個(gè)房子
             House[2].drink = "牛奶";// 住在中間那個(gè)房子里的人喝牛奶

             for (int e=1; e<5; e++) //表示英國(guó)人的房子序號(hào)
             for (int r=1; r<5; r++)//表示瑞典人的房子序號(hào)
             for (int d=1; d<5; d++)//表示丹麥人的房子序號(hào)
             for (int g=0; g<5; g++)//表示綠房子的序號(hào)
             for (int p=0; p<5; p++)//表示抽Pall Mall牌香煙的人的房子序號(hào)
             for (int y=0; y<5; y++)//表示黃色房子的序號(hào)
             for (int b=0; b<5; b++)//表示喝啤酒人的房子序號(hào)
             for (int h=0; h<5; h++)//表示養(yǎng)馬的人的房子序號(hào)
             for (int cat=0; cat<5; cat++)//表示養(yǎng)貓的人的房子序號(hào)
             {
              int Germany = 10 - 0 - e - r - d; //表示德國(guó)人的房子序號(hào),德國(guó)人抽Prince牌香煙;
              int Blends = 10 - p - y - b - Germany;//表示抽Blends牌香煙的人的房子序號(hào)
              int white = 10 - 1 - e - g - y; //表示白房子的序號(hào)
              int water = 10 - 2 - d - g - b; //表示喝礦泉水的人的房子序號(hào)
              int fish = 10 - r - p - h - cat;//表示養(yǎng)魚(yú)的人的房子序號(hào)
              
              bool A1 = (e!=1); //英國(guó)人住在紅色的房子里;根據(jù)房子和國(guó)家判斷
              bool A2 = (r!=e); //瑞典人養(yǎng)狗作為寵物;根據(jù)國(guó)家和寵物判斷
              bool A3 = (d!=e && d!=r && d!=2);//丹麥人喝茶;根據(jù)國(guó)家和飲料判斷
              bool A4 = (g!=1 && g!=2 && g!=e && g!=d);//綠房子的主人喝咖啡;根據(jù)顏色和飲料判斷
              bool A5 = (p!=r); //抽Pall Mall牌香煙的人養(yǎng)鳥(niǎo);根據(jù)香煙和寵物判斷
              bool A6 = (y!=e && y!=1 && y!=g && y!=p);//黃色房子里的人抽Dunhill牌香煙;根據(jù)顏色和香煙判斷
              bool A7 = (b!=2 && b!=d && b!=g && b!=p && b!=y);//抽BlueMaster牌香煙的人喝啤酒;根據(jù)香煙和飲料判斷
              bool A8 = (h!=r && h!=p && (h==y+1 || h==y-1));//養(yǎng)馬的人和抽Dunhill牌香煙的人相鄰,根據(jù)香煙和寵物判斷
              bool A9 = (white == g + 1); //綠房子緊挨著白房子,在白房子的左邊;
              bool A0 = (cat==Blends-1 || cat==Blends+1);//Blends牌香煙的人和養(yǎng)貓的人相鄰;
              bool A11 = (water==Blends-1 || water==Blends+1);//抽Blends牌香煙的人和喝礦泉水的人相鄰
              
              if (A1 && A2 && A3 && A4 && A5 && A6 && A7 && A8 && A9 && A0 && A11)
              {//把滿足條件的序號(hào)填入結(jié)構(gòu)數(shù)組
               House[e].nation = "英國(guó)";
               House[e].color = "紅色";
               House[r].nation = "瑞典";
               House[r].pet = "狗";
               House[d].nation = "丹麥";
               House[d].drink = "茶";
               House[g].color = "綠色";
               House[g].drink = "咖啡";
               House[p].cigarette = "Pall Mall";
               House[p].pet = "鳥(niǎo)";
               House[y].color = "黃色";
               House[y].cigarette = "Dunhill";
               House[b].cigarette = "BlueMaster";
               House[b].drink = "啤酒";
               House[h].pet = "馬";
               House[Germany].nation = "德國(guó)";
               House[Germany].cigarette = "Prince";
               House[Blends].cigarette = "Blends";
               House[white].color = "白色";
               House[water].drink = "礦泉水";
               House[cat].pet = "貓";
               House[fish].pet = "魚(yú)"; 
               
               goto end;
              }
             }
            end:
             for (int i=0; i<5; i++)
              cout << Title[i] << "\t";
             cout << endl << endl;
             
             for (int i=0; i<5; i++)
             {
              cout << House[i].nation << "\t";
              cout << House[i].color << "\t";
              cout << House[i].pet << "\t";
              cout << House[i].drink << "\t";
              cout << House[i].cigarette << "\t";
              cout << endl;
             }
             //輸出到文件
             ofstream out("愛(ài)因斯坦的思考題.txt");
             for (int i=0; i<5; i++)
              out << Title[i] << "\t";
             out << endl << endl;
             
             for (int i=0; i<5; i++)
             {
              out << House[i].nation << "\t";
              out << House[i].color << "\t";
              out << House[i].pet << "\t";
              out << House[i].drink << "\t";
              out << House[i].cigarette << "\t";
              out << endl;
             }
             out.close();
             
               system("pause");
               return 0;
            }

            Posted on 2006-12-06 22:31 夢(mèng)想飛揚(yáng) 閱讀(3101) 評(píng)論(18)  編輯 收藏 引用

            Feedback

            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2006-12-08 15:13 by skinny_
            "抽Pall Mall牌香煙的人養(yǎng)鳥(niǎo)"
            看看你的答案,有養(yǎng)鳥(niǎo)的人么?

            我的印象里,這似乎是個(gè)無(wú)解的題目,因?yàn)槿鄙贄l件,還少了一個(gè)人,你的答案也證明了這一點(diǎn),有兩個(gè)人養(yǎng)魚(yú)

            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2006-12-08 22:45 by 夢(mèng)想飛揚(yáng)
            呵呵,我開(kāi)始確實(shí)大意了
            但如果第一次碰到合適的答案就輸出的話,也可以找到一個(gè)答案的.
            為了不誤人子弟,代碼我已經(jīng)改過(guò)來(lái)了.

            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2006-12-10 16:31 by 曦恝恝
            收藏了 !

            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2006-12-10 16:41 by 曦恝恝
            收藏了 !1


            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2007-03-20 20:04 by pengkuny
            確實(shí)很精彩,尤其是"{//把滿足條件的序號(hào)填入結(jié)構(gòu)數(shù)組"這一段,
            加上前面
            House[0].nation = "挪威";//挪威人住在第一個(gè)房子里面
            House[1].color = "藍(lán)色";//挪威人和住在藍(lán)房子的人相鄰,即藍(lán)房子是第2個(gè)房子
            House[2].drink = "牛奶";// 住在中間那個(gè)房子里的人喝牛奶
            總共25個(gè)完美的信息.

            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2007-06-18 09:25 by 倔強(qiáng)超人
            恩 ,跟智商無(wú)關(guān)

            推理 ,可能會(huì)麻煩點(diǎn)

            總有出口的

            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2007-08-10 13:32 by
            德國(guó)人養(yǎng)魚(yú)

            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2007-10-21 15:51 by 沒(méi)有
            我也做出來(lái)了,花了75分鐘.
            利用推理過(guò)程算出來(lái)的```

            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2007-10-21 17:39 by Minidx全文檢索
            厲害!

            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2007-12-25 15:49 by 秦歌
            這樣呀!厲害!

            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2008-12-17 09:59 by 桀達(dá)
            呵呵這到題目高一的時(shí)候做過(guò),花了83分鐘

            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2008-12-28 09:21 by 黃色
            花了83分鐘

            # re: 愛(ài)因斯坦的思考題[未登錄](méi)  回復(fù)  更多評(píng)論   

            2009-05-11 16:45 by 123
            是,跟智商無(wú)關(guān)

            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2009-09-08 05:34 by 啦啦啦
            1號(hào)房 2號(hào)房 3號(hào)房 4號(hào)房 5號(hào)房
            黃色 藍(lán)色 紅色 綠色 白色
            挪威 丹麥 英國(guó) 德國(guó) 瑞典
            礦泉水 茶 牛奶 咖啡 啤酒
            Dun. Ble. Pal. Pri. Blu.
            貓 馬 鳥(niǎo) 魚(yú) 狗

            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2009-12-25 01:24 by 黃色
            黃色 藍(lán)色 紅色 綠色 白色

            #  愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2011-04-23 16:22 by 祁韻好
            看來(lái)我的智商還挺不錯(cuò)的,才上小四花了40分鐘就作出來(lái)了。

            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2012-06-24 21:59 by
            我用了35分鐘

            # re: 愛(ài)因斯坦的思考題  回復(fù)  更多評(píng)論   

            2012-06-24 21:59 by
            你好自戀

            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久国产香蕉视频| 精品久久久久成人码免费动漫| 久久人人爽人人爽人人片AV东京热| 亚洲国产精品无码久久久久久曰| 伊人久久大香线蕉综合网站| 亚洲色大成网站www久久九 | 国产高潮国产高潮久久久91| 蜜臀久久99精品久久久久久| 久久亚洲精品成人AV| 亚洲午夜精品久久久久久人妖| 久久免费视频6| 久久99中文字幕久久| 久久精品国产欧美日韩99热| 久久91精品久久91综合| 久久婷婷五月综合成人D啪| 欧美综合天天夜夜久久| 亚洲国产欧美国产综合久久| 国产一区二区三精品久久久无广告| 亚洲va中文字幕无码久久| 国产女人aaa级久久久级| 国产精品美女久久久久久2018| 久久综合伊人77777| 国产精品亚洲美女久久久| 久久人人爽人人爽人人片av高请 | 国产婷婷成人久久Av免费高清| 青草久久久国产线免观| 久久精品国产99国产精品澳门| 伊人色综合九久久天天蜜桃| 狠狠久久综合| 久久久久久久国产免费看| 91精品国产乱码久久久久久| 亚洲国产一成人久久精品 | 97r久久精品国产99国产精| 久久久SS麻豆欧美国产日韩| 亚洲国产精品嫩草影院久久| 久久久久久久综合日本| 日韩欧美亚洲综合久久影院Ds| 久久久精品人妻无码专区不卡| 久久国产精品一区| 亚洲国产精品无码久久久久久曰| 亚洲国产精品综合久久网络|