模糊逻辑的斑马难题

五个不同国家且工作各不相同的人分别住在一条街上的五所房子里,每所房子颜色不同,每个人都有自己养的不同的宠物,喜欢和不同的饮料。根据提示,判断哪所房子里的人养斑马,哪所房子里的人喜欢喝矿泉水。
英国人住在红色的房子里;西班牙人养了一条狗;日本人是一个油漆工;意大利人喜欢喝茶;挪威人住在左边的第一个房子里;绿房子在白房子的右边;摄影师养了一只蜗牛;外交官住在黄房子里;中间房子里的那个人喜欢喝牛奶;喜欢喝咖啡的人住在绿房子里;挪威人住在蓝色的房子旁边;小提琴家喜欢喝橘子汁;养狐狸的人所住的房子与医师的房子相邻;养马的人所住的房子与外交官的房子相邻。


这道题做是做出来了,但是用了起码二十分钟。请问有好的办法吗?
另外计算机能穷举吗?(弱弱的问一句120^5长的int数组要占多少内存,编译时竟然说太长……)

推荐  (0) | 7人关注关注
5个答案
2 0

方弦科学松鼠会成员,信息学硕士生

2013-03-02 17:32
支持者: we_cry Contemplator

穷举太容易了,Prolog果断秒杀此类问题……当然不是瞎穷举,是回溯法搜索……

0 0

人的思路应该也是穷举...

计算机必然能穷举啊,5个房子,每个房子的属性有国家、饮料、颜色、宠物、职业5种,每个属性有5个可选值。
struct House
{
char country;
chardrink;
char color;
charpet;
charjob;
}house[5];
赋些初值(比如house[0].country = 'N'; house[1].color = 'B'; house[2].drink = 'M'),
循环的时候把某些条件直接continue(比如绿在白左边时),
全部相符时输出
只是循环费时间而已,不需要那么大内存吧...

另,120^5 int =24883200000int =99532800000Byte = 97200000KB约=94922MB约=93 GB。

0 0

用不到那么大内存。你不需要建一个这么大的数组。

0 0

这不是爱因斯坦的难题吗..做法搜一下是成堆成堆的,而且重点在于用哪两条件推导低三个结论啊...

查看更多

添加回答

登录 后回答问题,你也可以用以下帐号直接登录

相关问答

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 家长监控 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2018] 6282-492号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区