今天分享一个困难的谜题

据传是爱因斯坦还年轻时所想出来的

本人自学python已经有一段时间,偶然间了解到了爱因斯坦谜题,就想用已经学过的知识来解决这个谜题,下面我就将我的方法分享给大家。

题目:
有一排共5间颜色完全不重复的房子,里头分别住了5位不同国籍的屋主,他们抽着不同品牌的香烟、喝着不同的饮料、并且养了不同的宠物:(国籍、香烟、饮料和宠物也都没有重复)

条件:
1:英国人住在红色的房子。

2:瑞典人养狗。

3:丹麦人喝的饮料是茶。

4:绿色房子就在白色房子的左边。

5:绿色房子的主人喝的饮料是咖啡。

6:抽Pall Mall的屋主养鸟。

7:黄色房子的主人抽Dunhill。

8:住在中间房子的屋主喝牛奶。

9:挪威人住在第一间房子。

10:抽Blends的屋主住在养猫屋主的隔壁。

11:养马的屋主住在抽Dunhill屋主的隔壁。

12:抽Bluemasters屋主的饮料是啤酒。

13:德国人抽Prince。

14:挪威人住在蓝色房子隔壁。

15:抽Blends的屋主住在饮料是水的屋主隔壁。

问题:请问是谁养鱼呢?

思路:
思路其实很简单,就是把所有的情况全部列出来,然后依次判断15个条件,满足条件就输出该排列。

房子颜色、国籍、饮料、香烟、宠物各有120种排列,所以共有1205种排列。

1 下面是第一次写的程序
由于该程序运行完需要的时间太长,所以我加入了时间函数计算时间,每进行1203种情况的判断需要的时间为9秒左右,1205种情况全部判断完需要接近36个小时,显然这个程序是不合理的。

2 下面是第二次写的程序
第一次写的程序的问题主要是进行的运算量太多,导致得出运算结果比较慢,第二次就减少运算量方面进行改进。
我们可以发现,一些条件可以不用所有元素都确定后进行判断,比如条件1,可以在国籍和房子颜色确定后就进行判断,这样就可以减少1203次运算,大大提高运算速度。
由于减少了一些不必要的运算,运算速度大大提高,最终只用了不到0.2s就得出了结果。

【爱因斯坦谜题】用python基础语法解决爱因斯坦谜题相关推荐

  1. Python基础语法学习笔记

    Python基础语法学习笔记 想淘宝省钱看我简介,博客www.liangxin.name (一) 一.Print()函数 1.数字可以直接输出,无需加引号 只能理解数字,却读不懂文字.因为数字和数学运 ...

  2. python基础语法 第0关print-重庆酉阳高校邦数据科学通识课【Python基础语法】答案...

    重庆酉阳高校邦数据科学通识课[Python基础语法]答案it8p 重庆酉阳高校邦数据科学通识课[Python基础语法]答案 关注公众号{帅搜}即可查询答案 支持:大学网课,智慧树,知到,超星,尔雅,学 ...

  3. python语言创意绘画-齐齐哈尔富裕高校邦数据科学通识课【Python基础语法】答案...

    齐齐哈尔富裕高校邦数据科学通识课[Python基础语法]答案it8p 齐齐哈尔富裕高校邦数据科学通识课[Python基础语法]答案 关注公众号{帅搜}即可查询答案 支持:大学网课,智慧树,知到,超星, ...

  4. python变量类型-【干货】Python基础语法之变量类型

    原标题:[干货]Python基础语法之变量类型 还没关注? 01 Python编码 Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错. 解决 ...

  5. eclipse python_【Python基础】Python基础语法

    编程与Python 1.什么是编程 人为安排计算机解决某个问题的方法和步骤. 2.编程的语言 机器语言:二进制代码表示的计算机能够直接识别和执行的一种机器指令的集合ADD代表运算符号"+&q ...

  6. Python基础语法笔记

    文章目录 前言 1.变量.运算符与数据类型 1.1 注释 1.2 运算符 1.3 变量与赋值 1.4 数据类型与转换 1.5 print()函数 2.位运算 2.1 原码.反码和补码 2.2 利用位运 ...

  7. 【Python学习】一、Python基础语法

    文章目录 一.认识Python 1.Python起源 2.语言特点 3.优缺点 4.HelloPython [1]源程序 [2]Python 2.x 与 3.x版本简介 [3]执行 Python 程序 ...

  8. python在煤矿的用途-临汾尧都高校邦数据科学通识课【Python基础语法】答案

    临汾尧都高校邦数据科学通识课[Python基础语法]答案it8p 临汾尧都高校邦数据科学通识课[Python基础语法]答案 关注公众号{帅搜}即可查询答案 支持:大学网课,智慧树,知到,超星,尔雅,学 ...

  9. Python基础语法全体系 | 文件IO与常用文件操作模块

    <Python基础语法全体系>系列博文第六篇,本篇博文将讲解Python的文件IO操作,包括文件的打开.读取和写入.本文整理自疯狂python编程. 文章目录 使用pathlib操作目录 ...

最新文章

  1. 教你两种python selenium保存图片的方法
  2. [转载] 淘宝旺铺扶植版如何添加背景音乐
  3. vmware迁移问题
  4. 拾遗:『ext4 Quota』
  5. 《犯罪心理学》读书笔记(part1)--蔑视社会秩序的最明显、最极端的表现就是犯罪
  6. 职业生涯中12个最致命的想法
  7. 技术动态 | 去中心化知识图谱协作平台建设实践
  8. ipv6+ssh+java_IPv6的本地联网地址计算方法详解
  9. 怎么在html5中插入vr,HTML5:2分钟给VR场景加交互
  10. 短信API接口怎么调用?
  11. 大数据培训课(体验) Day02
  12. 艰辛坎坷的360崛起之路
  13. 木心先生的句子,不仅美,而且富有深意! ​​​
  14. Spirent TestCenter指定端口上配置OSPFv2 Router
  15. 用c语言绘制五角星图形,用c语言画出一个五角星图案
  16. 深度学习-20:神经科学、脑科学和稀疏特性
  17. 内存存放方式_如何以正确的方式存放剩余涂料
  18. 影子系统详细内容最强大全
  19. AElf区块链分红合约(Profit Contract)接口和实现思路
  20. Qt · 密码输入框检测并显示大写锁定键已打开

热门文章

  1. 计算机网络之ping的原理
  2. 微信扫码登录与微信授权登录
  3. MySQL数据CURD操作
  4. File中的renameTo方法案例
  5. compiznbsp;confignbsp;设置(转…
  6. kmeans的基础原理,损失函数以及例子
  7. java xmpp smack_如何使用java smack库连接XMPP bosh服务器?
  8. esp8266的SDK开发pwm有感:解决LED灯不能熄灭,微微亮问题。
  9. 暑假集训#2 div1 J 四点直角 J - Space Invader 四点共面+跨立实验
  10. 虚拟服务器蓝屏,【原创】在虚拟机中运行系统导致实机系统蓝屏“0x000000F4”原因分析。...