热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python枚举相等判断_友尽妙招:用Python解“智力游戏”

大家好,欢迎来到Crossin的编程教室!我是Crossin。之前国庆假期在家闲来无事,找了一本“思维训练手册”(其实就是一些智力题、推理

676de9f56ddd75b04affe12de06f464d.png


大家好,欢迎来到Crossin的编程教室!我是Crossin

之前国庆假期在家闲来无事,找了一本“思维训练手册”(其实就是一些智力题、推理题,甚至“脑筋急转弯”),跟家人一起玩智力游戏。这些题是不是真的可以训练人的思维我不知道,但是看了几题我忍不住要吐槽:这真的不是从“青少年信息学奥林匹克”题库里找出来的题吗?!

74b97cf1677a2948dbe20612da047700.png

里面有不少题,让人做是有的烧(wu)脑(liao),但如果改成编程题,那倒有点意思了。

ec677bbc9330e615f890958956883125.png

于是,原本拿着纸笔做题的场景,就立马被我改成了拿出电脑敲代码的画风。

754d3e31f22c657788c922c706f53bf8.png

我从里面挑了3题,你们感受一下。

如果你像我一样喜(xian)欢(de)挑(wu)战(liao),也可以来试试,不管用不用编程。

答案在文末,另外也附了我的代码解法,欢迎取用。

1.

fa88b4de89a21b22e01f19870f27d0db.png

(答案见文末)

思路提示:

用程序解这类“智力题”有个屡试不爽的方法,就是“枚举法”,或者叫做“暴力解法”。就是对于存在有限种可能选择的情况下,让程序把每一种情况都试一遍,找出符合条件的解。

这题就可以暴力去解。

当然,暴力最好也要有头脑的暴力。比如这里,5个3位数,从中去掉9个数,听上去有点烦。但反过来想,其实不就是从里面挑6个数字嘛!

100、10、1、300、……、90、9,这15个数里面取6个,使得它们的和是1111,这我已经不能再提示了吧!

对了,再说一句:Python里有个取排列/组合的库,叫做:itertools。谁用谁知道33c2067431b6c7e20d10a495bd7ae601.png

2.

e8645cba2a814681f952e424e72a7275.png

(答案见文末)

思路提示:

这题就不再适合暴力去解了,因为52个值分到4个盒子里,一共是有4的52次方,也就是20282409603651670423947251286016种情况……

f9846bcfea02faf89666ac8a36e3bc6d.png

但是仔细想一下,这题也不必暴力。我们只需要把52个值从小到大依次往盒子里放就行。只是放的时候需要判断一下,哪个盒子是“不”能放的,即其中盒子里已有两个数的和等于这个值。如果存在,那么就去下一个盒子,此处不留爷,自有留爷处!(处处不留爷,那一定是题目出错了!)

OK,先就来这3题试试看吧!

讲真,这种题虽然没啥实际意义,但若真要你用代码写出来,也不是那么容易的,很考验你对程序逻辑和数据结构的理解。所以,很多IT公司在招聘开发岗位时也会出一些类似的题,既是考察你分析问题的能力,也能看出你写代码的水平。讲不定哪天你就在面试时碰到我发过的题目呢。(事实上,这种事已经发生过几次了,甚至还有面试官就直接拿我的题目去面人的)

a4d1f2e47ade46575f4c3dd1278ee2e6.png

欢迎在留言区分享你的解答!如果大家对此类题目感兴趣,之后我再多弄一些来。

本文题目来源自《思维高手:全世界聪明人都在做的200个思维游戏》

获取相关代码,请在公众号(Crossin的编程教室)里回复关键字:

智力题

答案(设置了白色字体,长按下方空白后选中可见。深色模式请自便!):

1.

111

x3x

x7x

9xx

(此题共有5个解,参见代码输出)

2.

按图上圆圈标记顺序:

2, 5, 8, 9, 3, 4, 6, 7, 1

3.

[1, 2, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 52], 

[3, 5, 6, 12, 14, 21, 23, 30, 32, 39, 41, 48, 50], 

[8, 9, 11, 15, 18, 35, 36, 38, 42], 

[17, 20, 24, 26, 27, 29, 33, 45]

(此题也不是唯一解,比如把48放进盒子4也是可以的)


_往期文章推荐_

几道有趣的概率题
29096f4c5a400ba17ad7443d92c4f7c0.png



推荐阅读
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Søren Kierkegaard famously stated that life can only be understood in retrospect but must be lived moving forward. This perspective delves into the intricate relationship between our lived experiences and our reflections on them. ... [详细]
  • PyCharm中配置Pylint静态代码分析工具
    本文详细介绍如何在PyCharm中配置和使用Pylint,帮助开发者进行静态代码检查,确保代码符合PEP8规范,提高代码质量。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 优化ASM字节码操作:简化类转换与移除冗余指令
    本文探讨如何利用ASM框架进行字节码操作,以优化现有类的转换过程,简化复杂的转换逻辑,并移除不必要的加0操作。通过这些技术手段,可以显著提升代码性能和可维护性。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 解决Linux系统中pygraphviz安装问题
    本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 深入探讨双臂机器人运动学与D-H建模在ROS系统MoveIt中的应用
    本文详细介绍了如何利用ROS系统MoveIt进行双臂机器人的运动学分析和D-H建模,涵盖刚体位姿描述、正逆运动学求解以及具体的D-H参数计算方法。 ... [详细]
author-avatar
于华521_811
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有