我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

« 1 2» Pages: ( 1/2 total )
本页主题: 爱因斯坦的思考题(转载) 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

sitademail



性别: 帅哥 状态: 该用户目前不在线
等级: 希望之光
发贴: 1791
威望: 0
浮云: 1282
在线等级:
注册时间: 2006-11-02
最后登陆: 2012-03-26

5come5帮你背单词 [ noisy /'noizi/ a. 吵闹的 ]


爱因斯坦的思考题(转载)

爱因斯坦的思考题
在网上看到了个有趣的逻辑推理题,爱因斯坦声称世界上只有2%的人能解出:

有五个具有五种不同颜色的房间排成一排;

每个房间里分别住着一个不同国籍的人;

每个人都在喝一种特定品牌的饮料,抽一特定品牌的烟,养一特定的宠物;

没有任意两个人在抽相同品牌的香烟,或喝相同品牌的饮料,或养相同的宠物。

  问题:谁在养鱼作为宠物?

  爱因斯坦给出如下线索:


英国人住在红色的房子里;

瑞典人养狗作为宠物;

丹麦人喝茶;

绿房子紧挨着白房子,在白房子的左边;

绿房子的主人喝咖啡;

抽Pall Mall牌香烟的人养鸟;

[屏蔽]房子里的人抽Dunhill牌香烟;

住在中间那个房子里的人喝牛奶;

挪威人住在第一个房子里面;

抽Blends牌香烟的人和养猫的人相邻;

养马的人和抽Dunhill牌香烟的人相邻;

抽BlueMaster牌香烟的人喝啤酒;

德国人抽Prince牌香烟;

挪威人和住在蓝房子的人相邻;

抽Blends牌香烟的人和喝矿泉水的人相邻。

         
          国家          房子          宠物          饮料          香烟
          挪威          [屏蔽]              猫        矿泉水        Dunhill
          丹麦          蓝色              马            茶        Blends
          英国          红色              鸟          牛奶      PallMall
          德国          绿色              鱼          咖啡        Prince
          瑞典          白色              狗          啤酒    BlueMaster
*/
/*
算法思路:
以房子的位置为主序,把国籍,颜色,宠物,饮料,香烟都作为该房子的一个成员,每一个成员都有可能
处在任何位置,为所有成员穷举每一个位置,再根据已知条件进行适当剪枝,找到唯一的解
*/

Copy code
#include <iostream>
#include <string>
#include <fstream>

using namespace std;

int main(void)
{
    string Title[5] = {"国籍","颜色","宠物","饮料","香烟"};
    struct {
        string nation;
        string color;
        string pet;
        string drink;
        string cigarette;
    }    House[5];//房子从左到右编号

    House[0].nation = "挪威";//挪威人住在第一个房子里面
    House[1].color = "蓝色";//挪威人和住在蓝房子的人相邻,即蓝房子是第2个房子
    House[2].drink = "牛奶";// 住在中间那个房子里的人喝牛奶

    for (int e=1; e<5; e++)    //表示英国人的房子序号
    for (int r=1; r<5; r++)//表示瑞典人的房子序号
    for (int d=1; d<5; d++)//表示丹麦人的房子序号
    for (int g=0; g<5; g++)//表示绿房子的序号
    for (int p=0; p<5; p++)//表示抽Pall Mall牌香烟的人的房子序号
    for (int y=0; y<5; y++)//表示[屏蔽]房子的序号
    for (int b=0; b<5; b++)//表示喝啤酒人的房子序号
    for (int h=0; h<5; h++)//表示养马的人的房子序号
    for (int cat=0; cat<5; cat++)//表示养猫的人的房子序号
    {
        int Germany = 10 - 0 - e - r - d;    //表示德国人的房子序号,德国人抽Prince牌香烟;
        int Blends = 10 - p - y - b - Germany;//表示抽Blends牌香烟的人的房子序号
        int white = 10 - 1 - e - g - y; //表示白房子的序号
        int water = 10 - 2 - d - g - b; //表示喝矿泉水的人的房子序号
        int fish = 10 - r - p - h - cat;//表示养鱼的人的房子序号
     
        bool A1 = (e!=1);    //英国人住在红色的房子里;根据房子和国家判断
        bool A2 = (r!=e);    //瑞典人养狗作为宠物;根据国家和宠物判断
        bool A3 = (d!=e && d!=r && d!=2);//丹麦人喝茶;根据国家和饮料判断
        bool A4 = (g!=1 && g!=2 && g!=e && g!=d);//绿房子的主人喝咖啡;根据颜色和饮料判断
        bool A5 = (p!=r);    //抽Pall Mall牌香烟的人养鸟;根据香烟和宠物判断
        bool A6 = (y!=e && y!=1 && y!=g && y!=p);//[屏蔽]房子里的人抽Dunhill牌香烟;根据颜色和香烟判断
        bool A7 = (b!=2 && b!=d && b!=g && b!=p && b!=y);//抽BlueMaster牌香烟的人喝啤酒;根据香烟和饮料判断
        bool A8 = (h!=r && h!=p && (h==y+1 || h==y-1));//养马的人和抽Dunhill牌香烟的人相邻,根据香烟和宠物判断
        bool A9 = (white == g + 1);    //绿房子紧挨着白房子,在白房子的左边;
        bool A0 = (cat==Blends-1 || cat==Blends+1);//Blends牌香烟的人和养猫的人相邻;
        bool A11 = (water==Blends-1 || water==Blends+1);//抽Blends牌香烟的人和喝矿泉水的人相邻
     
        if (A1 && A2 && A3 && A4 && A5 && A6 && A7 && A8 && A9 && A0 && A11)
        {//把满足条件的序号填入结构数组
            House[e].nation = "英国";
            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 = "鸟";
            House[y].color = "[屏蔽]";
            House[y].cigarette = "Dunhill";
            House.cigarette = "BlueMaster";
            House.drink = "啤酒";
            House[h].pet = "马";
            House[Germany].nation = "德国";
            House[Germany].cigarette = "Prince";
            House[Blends].cigarette = "Blends";
            House[white].color = "白色";
            House[water].drink = "矿泉水";
            House[cat].pet = "猫";
            House[fish].pet = "鱼";   
         
            goto end;
        }
    }
end:
    for (int i=0; i<5; i++)
        cout << Title << "\t";
    cout << endl << endl;
 
    for (int i=0; i<5; i++)
    {
        cout << House.nation << "\t";
        cout << House.color << "\t";
        cout << House.pet << "\t";
        cout << House.drink << "\t";
        cout << House.cigarette << "\t";
        cout << endl;
    }
    //输出到文件
    ofstream out("爱因斯坦的思考题.txt");
    for (int i=0; i<5; i++)
        out << Title << "\t";
    out << endl << endl;
 
    for (int i=0; i<5; i++)
    {
        out << House.nation << "\t";
        out << House.color << "\t";
        out << House.pet << "\t";
        out << House.drink << "\t";
        out << House.cigarette << "\t";
        out << endl;
    }
    out.close();
 
      system("pause");
      return 0;
}

}


[ 此贴被sitademail在2007-08-11 22:04重新编辑 ]
顶端 Posted: 2007-08-11 10:13 | [楼 主]
further



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 4065
威望: 0
浮云: 1363
在线等级:
注册时间: 2006-11-01
最后登陆: 2009-04-08

5come5帮你背单词 [ sometime /'sΛmtaim/ ad. 某时,近期内,曾经,一度 ]


我靠,这个太牛了
顶端 Posted: 2007-08-11 10:19 | [1 楼]
liusum



性别: 帅哥 状态: 该用户目前不在线
头衔: Detect-Antivirus  E
等级: 前途无量
家族: 掌握文武半边天
发贴: 9922
威望: 0
浮云: 1365
在线等级:
注册时间: 2005-09-15
最后登陆: 2009-05-11

5come5帮你背单词 [ math /mæθ/ n. 数学 ]


呵呵,有意思~~~~~~~`
顶端 Posted: 2007-08-11 10:26 | [2 楼]
strang





性别: 帅哥 状态: 该用户目前不在线
头衔: 寻找知己
等级: 人见人爱
家族: 单身贵族
发贴: 2309
威望: 0
浮云: 1184
在线等级:
注册时间: 2007-01-23
最后登陆: 2008-06-29

5come5帮你背单词 [ away /ə'wei/ ad. 离开,远离 ]


编程!!
强啊11
顶端 Posted: 2007-08-11 10:39 | [3 楼]
271058





性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 272
威望: 0
浮云: 1171
在线等级:
注册时间: 2007-05-28
最后登陆: 2015-05-30

5come5帮你背单词 [ minor /'mainə/ a. 较小的,不严重的,次要的;n. 未成年人,兼修学科 ]


厉害啊
顶端 Posted: 2007-08-11 11:25 | [4 楼]
你来我网



性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 407
威望: 0
浮云: 1336
在线等级:
注册时间: 2007-06-15
最后登陆: 2008-06-29

5come5帮你背单词 [ all /o:l/ a. 全部的,整个的,非常的,极度的;ad. 完全地,十分地;pron全体,一切 ]


真他吗的服了
顶端 Posted: 2007-08-11 11:27 | [5 楼]
fx_05





性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
家族: 菠韬汹勇
发贴: 1209
威望: 0
浮云: 1107
在线等级:
注册时间: 2006-11-05
最后登陆: 2009-05-11

5come5帮你背单词 [ affect /ə'fekt/ vt. 影响,作用,感动,(疾病)侵袭 ]


无语了
顶端 Posted: 2007-08-11 11:30 | [6 楼]
est





性别: 帅哥 状态: 该用户目前不在线
等级: 荣誉会员
发贴: 6578
威望: 3
浮云: 431
在线等级:
注册时间: 2006-10-14
最后登陆: 2018-07-05

5come5帮你背单词 [ responsible /ris'ponsəbl/ a. 应负责的,有责任心的 ]


楼上几位灌水好有才……
顶端 Posted: 2007-08-11 20:56 | [7 楼]
axiuluo



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
家族: 单身贵族
发贴: 568
威望: 0
浮云: 1164
在线等级:
注册时间: 2006-10-06
最后登陆: 2008-06-29

5come5帮你背单词 [ brief /bri:f/ a. 短暂的,简洁的,简要的;摘要,概要 ]


貌似很早就看过了。。。。
顶端 Posted: 2007-08-11 21:05 | [8 楼]
指甲里的鱼2



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 2234
威望: 0
浮云: 1124
在线等级:
注册时间: 2006-11-27
最后登陆: 2013-03-21

5come5帮你背单词 [ tractor /'træktə/ n. 拖拉机,牵引车 ]


这个爱因斯坦统计过啊 这提有意义吗
顶端 Posted: 2007-08-11 21:44 | [9 楼]
herolu



性别: 帅哥 状态: 该用户目前不在线
头衔: 本人已穷死,有事请烧钱
等级: 前途无量
发贴: 6785
威望: 0
浮云: 1219
在线等级:
注册时间: 2007-03-11
最后登陆: 2010-04-24

5come5帮你背单词 [ communist /'komjunist/ n. 共产主义者,共产党员;a. 共产主义的,共产党的 ]


真的是很刚健的阿!!!!!!!!
顶端 Posted: 2007-08-11 21:53 | [10 楼]
xfz666



性别: 帅哥 状态: 该用户目前不在线
等级: 前途无量
家族:
发贴: 6296
威望: 0
浮云: 310
在线等级:
注册时间: 2005-10-02
最后登陆: 2013-02-20

5come5帮你背单词 [ beast /bi:st/ n. (四足)兽类,牲畜,凶残的人 ]


Quote:
引用第7楼est于2007-08-11 20:56发表的  :
楼上几位灌水好有才……

同意,扣他们吧
顶端 Posted: 2007-08-11 21:58 | [11 楼]
albert





性别: 保密 状态: 该用户目前不在线
等级: 栋梁之材
家族: 唯war独尊
发贴: 634
威望: 0
浮云: 1116
在线等级:
注册时间: 2005-10-04
最后登陆: 2012-02-12

5come5帮你背单词 [ fan /fæn/ n. 风扇,狂热爱好者;扇 ]


这道题以前用手算过也是用穷举,费了不少时间。除了穷举算[屏蔽]Z还能想出别的算法吗。
顶端 Posted: 2007-08-14 20:05 | [12 楼]
albert





性别: 保密 状态: 该用户目前不在线
等级: 栋梁之材
家族: 唯war独尊
发贴: 634
威望: 0
浮云: 1116
在线等级:
注册时间: 2005-10-04
最后登陆: 2012-02-12

5come5帮你背单词 [ standard /'stændəd/ n. 标准,规格 ]


这道题以前用手算过也是用穷举,费了不少时间。除了穷举算[屏蔽]Z还能想出别的算法吗。
顶端 Posted: 2007-08-14 20:06 | [13 楼]
小兵



性别: 保密 状态: 该用户目前不在线
等级: 希望之光
发贴: 1866
威望: 0
浮云: 1105
在线等级:
注册时间: 2006-08-09
最后登陆: 2008-06-25

5come5帮你背单词 [ currency /'kΛrənsi/ n. 通货,货币,流通,流行 ]


Quote:
引用第2楼liusum于2007-08-11 10:26发表的  :
呵呵,有意思~~~~~~~`

看不明白
顶端 Posted: 2007-08-14 20:12 | [14 楼]
« 1 2» Pages: ( 1/2 total )
我来我网·5come5 Forum » 程序员之家

Total 0.012541(s) query 5, Time now is:11-23 12:05, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号