主题:[原创]编程解爱因斯坦难题正式版
if007
[专家分:650] 发布于 2006-04-21 22:23:00
/*************************************************************
简介:
传说下面是爱因斯坦在20世纪初出的一道测试题。他说世界上有99%的人回答不出这道题,
看看你是否属于另外的1%?题目如下:
前提:
1 有五栋五种颜色的房子
2 每一位房子的主人国籍都不同
3 这五个人每人只喝一种饮料,只抽一种牌子的香烟,只养一种宠物
4 没有人有相同的宠物,抽相同牌子的香烟,喝相同的饮料
条件:
1 英国人住在红房子里
2 瑞典人养了一条狗
3 丹麦人喝茶
4 绿房子在白房子左边
5 绿房子主人喝咖啡
6 抽PALL MALL烟的人养了一只鸟
7 黄房子主人抽DUNHILL烟
8 住在中间那间房子的人喝牛奶
9 挪威人住第一间房子
10 抽BLENDS烟的人住在养猫人的旁边
11 养马人住在DUNHILL烟的人旁边
12 抽BLUE MASTER烟的人喝啤酒
13 德国人抽PRINCE烟
14 挪威人住在蓝房子旁边
15 抽BLENDS烟的人的邻居喝矿泉水
问题:谁养鱼?
**************************************************************/
/*=============================================================
文件描述: 解养鱼问题
创建人: 陈泽丹 ,2006-4-20, QQ:82314038
文件号: 2
修改次数:
=============================================================*/
/*------------------------------------------------------------
算法描述:
(图是任意选定的)
--------------------------------
下标(国籍):0 1 2 3 4
对应(国籍):英 瑞 挪 德 丹
--------------------------------
数组值: 0 1 2 3 4
对应(房号) 0 1 2 3 4
对应(房色) 红 白 黄 蓝 绿
对应(宠物) 狗 马 鸟 猫 鱼
对应(饮料) 咖 茶 奶 水 酒
对应(香烟) pal dun blu pri ble
---------------------------------
依照上表,以人为线索(下标),排列人的属性的各种组合,符合题目条
件者,最后输出结果。
--------------------------------------------------------------*/
回复列表 (共31个回复)
11 楼
if007 [专家分:650] 发布于 2006-04-30 17:32:00
... ^-^。 说出来丢人,呵呵
那时光学了几个循环语句,就碰上这"挨千刀"的...(不说"挨千刀"的,无法充份痛快的表达我心里对她又爱又恨的心情啊!呵呵)
整整追求了她半个多月,但她还是拒绝了我,555.(那时甚至抚镜自怜,是不是因为俺长得太帅,所于运行不出结果,哈哈)
其实主要是循环问题! 那时循环层和数组用得太多了,程序变得很臃仲.以至我现在都有了后遗症,看见一个程序太长,不是用递归手法写的,又有太多if语句的,心里就发毛...
也是机缘巧合,半个月后在解老师布置的一个作业,我偶然接触到了回溯算法.接着灵机一触,改用回溯算法再次向她表明我坚贞不屈,圣洁无比的心志,和惊天地,泣鬼神的非把她娶回家的艰苦奋斗精神.在不打她,不骂她,就用感情折磨她的持久战下,把她的心肥的拖瘦,瘦的拖死.最后,她终于崩溃了,跟了我...
[em1]
12 楼
lisy [专家分:390] 发布于 2006-05-01 21:13:00
我用程序作了一下,做到第14个条件,就只有一种答案了。所以说第15个条件是多余的。
13 楼
if007 [专家分:650] 发布于 2006-05-01 21:25:00
哈,不错不错.
这点我在作程序的时侯也测试过.确实如此.
但题目是这样,那时也就没去说明了.
:)
14 楼
babygirllxj [专家分:0] 发布于 2006-05-01 23:33:00
答案应该是:
黄 蓝 红 绿 白
挪威人 丹麦人 英国人 德国人 瑞典人
矿泉水 茶 牛奶 咖啡 啤酒
DUNHILL BLENDS PALL MALL PRINCE BLUE MASTER
猫 马 鸟 鱼 狗
所以 德国人养鱼
15 楼
rickone [专家分:15390] 发布于 2006-05-02 00:32:00
if007的个人演唱会啊,捧个场,收藏一下!
16 楼
tossboy [专家分:160] 发布于 2006-05-02 01:27:00
我说搂主呀
到底是不是正确的代码呀
17 楼
阳平 [专家分:0] 发布于 2006-05-02 01:28:00
我们是在学计算机,不是靠自己用逻辑想,计算机毕竟不是人。我学的是人工智能,但是很多问题简直不是人做的。
18 楼
if007 [专家分:650] 发布于 2006-05-02 02:48:00
to 14楼 你的推理是正确的.
to 15楼 哈,正想恭访一下你的贴呢.乍一查才知,原来你是数据结构与算法的版主啊.哈,失敬失敬.看来不用恭访了,偶的第一张精华贴就是在你的那一版上发的啊,就是那贴<<求任意数的阶乘>>,承蒙抬举,把我的那贴设为精华贴.
十分让偶受鼓舞. 在此深表感谢!(事实上这里也是偶第一次上论坛,哈)
偶要是有什么有趣的或关于数据结构的题,就别人跳槽偶跳版,去你那版混口饭吃...哈.
to 16楼 正确的.
to 17楼 赞成
19 楼
暖颜 [专家分:0] 发布于 2006-05-02 09:49:00
[em12]
对应(国籍): 挪 丹 英 德 瑞
---------------------------------------
对应(房色) 黄 蓝 红 绿 白
对应(宠物) 猫 马 鸟 鱼 狗
对应(饮料) 水 茶 奶 咖 酒
对应(香烟) dun blu pal pri ble
其实不需要编程的,只要拿一张纸划一下就出来了嘛!干嘛那么罗嗦啊?
20 楼
暖颜 [专家分:0] 发布于 2006-05-02 09:50:00
对应(国籍): 挪 丹 英 德 瑞
---------------------------------------
对应(房色) 黄 蓝 红 绿 白
对应(宠物) 猫 马 鸟 鱼 狗
对应(饮料) 水 茶 奶 咖 酒
对应(香烟) dun blu pal pri ble
其实不需要编程的,只要拿一张纸划一下就出来了嘛!干嘛那么罗嗦啊?
我来回复