- 1
- 0
- 约7.73千字
- 约 13页
- 2017-06-13 发布于广东
- 举报
用电脑解决爱因斯坦难题
用电脑解决爱因斯坦难题
河南 路明
爱因斯坦在20世纪初出的这个谜语,题目是这样的:
1、在一条街上,有5座房子,喷了5种颜色。2、每个房里住着不同国籍的人。3、每个人喝不同的饮料,抽不同品牌的香烟,养不同的宠物。
1、英国人住红色房子2、瑞典人养狗3、丹麦人喝茶4、绿色房子在白色房子左面5、绿色房子主人喝咖啡6、抽Pall Mall香烟的人养鸟7、黄色房子主人抽Dunhill香烟8、住在中间房子的人喝牛奶9、挪威人住第一间房10、抽Blends香烟的人住在养猫的人隔壁11、养马的人住在抽Dunhill香烟的人隔壁12、抽Blue Master的人喝啤酒13、德国人抽Prince香烟14、挪威人住蓝色房子隔壁15、抽Blends香烟的人有一个喝水的邻居
据说,98%的人答不出这道题!
这是一道很典型的逻辑推理题,对于此题使用表格方法,通过假设找出矛盾,从而得到正确答案,是比较快速的方法,但即使是这样我见到的最快解出此题的人也用了十几分钟,那么电脑需要多久呢?答案是不到一秒钟!
如果让电脑完全按人类的推理来进行工作,那恐怕代码要写非常长,而且对于以后遇到类似的问题几乎没有什么参考价值。我们可以采用表格法进行递归穷举,利用电脑的强大的计算能力加上一些不复杂的逻辑来实现它,但是对于5!的5次方超过248亿个可能性,计算量相当的惊人。而采用按“国籍”、“饮料”、“色彩”、“香烟”、“宠物”五项信息依次对表格进行可能性填充,一旦不符合逻辑条件则立即中止向后面的信息进行判断,这样就可大大减少运算次数。
我们将使用二维数组InfoArray实现对各信息的初始化,二维数组矩阵Matrix记录表格定义,数组used来存贮与之对应的信息选项是否已用过。AccordWithLogic函数判断是否符合命题逻辑,可以对命题的条件先作一下整理再按信息类别依次来判断,而且输入条件不能涉及到未填充的信息。例如:当前才填充到“饮料”信息就不能去判断涉及到“香烟”的第15个条件,因为还没有向表格中填充任何香烟,那么得出的判断结果是不正确的。FillMatrix函数是程序的主体,它以递归的方式列举了所有的排列可能性。PrintResult函数用于打印结果。
backtracing的设计思想。
Delphi代码实现
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button4: TButton;
Label1: TLabel;
Label3: TLabel;
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
Matrix: array[0..4 , 0..4] of smallint; //表格
MatrixRowCount: integer = 4; //表格最大行数 ,即信息数
MatrixColCount: integer = 4; //表格最大列数 ,即每项信息的个数
// 实现对各信息的初始化
InfoArray: array[0..4, 0..4] of string =((挪威人, 英国人, 瑞典人, 丹麦人, 德国人),
(茶, 咖啡, 牛奶, 啤酒, 水),
(红色, 绿色, 黄色, 蓝色, 白色),
(Prince, Pall Mall, Dunhill, Blends, Blue Master),
(狗, 鸟, 马, 猫, 鱼));
used: array[0..4 , 0..4] of integer; //与InfoArray对应的元素是否已用过
count_get, count_pro: integer; //结果的个数、共进行了多少次递归运
您可能关注的文档
- 用埃尔米特插值求解.doc
- 用天平和量筒测物质的密度.doc
- 用对方法,考研可以事半功倍.doc
- 用数与式来描述有规律的几何图形.doc
- 用欧姆定律解读科技新产品.doc
- 用比重瓶法测量不规则小颗粒物体的密度.docx
- 用法治成就“舌尖上的中国梦”(人民时评.doc
- 用滑线变阻器分压和限流.doc
- 用真空管道运输速度能达到6500公里.docx
- 用示波器测动态磁滞回线、磁场测量实验报告.doc
- 七年级语文上册期末模拟试卷1(解析版).docx
- 七年级语文上册期末模拟试卷1(原卷版).docx
- 七年级语文上册期末模拟试卷2(原卷版).docx
- 七年级语文上册期末模拟试卷2(解析版).docx
- 期末测试卷(二)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(二)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
最近下载
- 贵州省六盘水市2022-2023学年高二下学期期末教学质量监测数学试卷(含答案).docx VIP
- 射击学理简介.ppt VIP
- 四人剧本杀:无间旅途全篇剧本(四人封闭环境).pdf VIP
- 商标侵权判定培训课件.pptx VIP
- 信捷x-sight视觉系统使用手册v2.1a.pdf
- 2026 年新版三至五年级上册语文期末考试试题及答案.docx
- (高清版)B-T 4942-2021 旋转电机整体结构的防护等级(IP代码) 分级.pdf VIP
- 牛羊生产 羊生产 羊的育肥技术.ppt VIP
- 表--乙二醇二甲醚的理化性质及危险特性.doc VIP
- 单位物业服务采购项目服务方案投标文件(技术方案).doc
原创力文档

文档评论(0)