常见智力题汇总

news2024/12/25 14:36:32

常见智力题汇总

  • 扔瓶子问题
  • 扑克牌问题
  • 出队问题
  • 烧绳子问题
  • 赛马问题
    • 求出前三名
    • 求出前五名
  • 接水问题
  • 种树问题
  • 硬币问题
  • 宝石问题
  • 核酸检测问题


笔者最近面试遇到了好几道智力题,这些题目特点就是如果没有见过,很难第一时间思考得到答案,因此笔者面试也就栽在了上面,所以本文来整理一波常见的智力题,以防后续面试再遇到。

相关智力题给出的都是网上的参考答案,未必完全正确,大家理性看待。


扔瓶子问题

题目: 给你两瓶矿泉水,总共一百层楼,咋找到能把矿泉水摔碎的临界点楼层,未摔碎可以去一楼捡回来,请说出至少三种方法 。

  1. 二分法:将一瓶矿泉水标记为水瓶A,另一瓶标记为水瓶B。首先,在50楼处摔破水瓶A。如果水瓶A碎了,那么临界点楼层在50楼以下;如果水瓶A没碎,那么临界点楼层在50楼以上。然后,根据摔碎的结果,对所在楼层范围内的楼层再次进行二分查找,重复以上步骤,直到找到临界点楼层。
  2. 等差递增法:将一瓶矿泉水标记为水瓶A,另一瓶标记为水瓶B。首先,在第10层楼摔破水瓶A,然后在第20层楼摔破水瓶A,接着在第30层楼摔破水瓶A,以此类推,每次递增10层。当水瓶A摔碎时,可以确定临界点楼层的范围,然后利用第二瓶矿泉水在该范围内逐层测试,直到找到临界点楼层。
  3. 三分法:将一瓶矿泉水标记为水瓶A,另一瓶标记为水瓶B。首先,在34楼处摔破水瓶A,然后根据摔碎的结果,如果水瓶A碎了,临界点楼层在1楼到33楼之间;如果水瓶A没碎,临界点楼层在34楼到66楼之间。然后,在临界点楼层范围内的中间楼层(例如,摔破水瓶A的楼层与上次摔破水瓶A的楼层的平均值)摔破水瓶A,重复以上步骤,直到找到临界点楼层。

扑克牌问题

问题: 52张扑克牌抽三张牌,抽到三张一样的概率、抽到同花顺的概率。

  1. 抽到三张一样的概率:
    • 对于三张一样的情况,有4种可能,即选择一种花色,然后从该花色中选择三张牌。每种花色有13张牌,因此概率为:
      • P(三张一样) = 4 * C(13, 3) / C(52, 3)
  2. 抽到同花顺的概率:
    • 对于同花顺,有10种可能的组合,即A2345、23456、34567、45678、56789、678910、78910J、8910JQ、910JQK和10JQKA。每种组合有4种花色,因此概率为:
      • P(同花顺) = 10 * 4 / C(52, 3)

出队问题

问题: 100个人,排一列,奇数出列,剩下的人以此类推,最后一人在第一次排列第几位 。

思路:

  1. 第一次去掉奇数后,剩下2、4、6……96、98、100,所有的数字都是2=2的1次方的整数倍;
  2. 第二次去掉奇数项后,剩余的数为4、8 、12、 16……92、96、100,均是4=2的2次方的整数倍;
  3. 第三次去掉奇数项后,剩余的数应为8=2的3次方的整数倍的偶数,即是8、16、24、32、40、48、56、64、72、80、88、96;
  4. 第四次去掉奇数项后,剩余的数为16=2的4次方的整数倍的偶数,即是16、32、48、64、80、96;
  5. 第五次去掉奇数项后,剩余数为32=2^5的整数倍的偶数,即是32、64、96;
  6. 最后一次去掉奇数项,则剩余64.

烧绳子问题

问题: 燃烧一根不均匀的绳子需要一小时,怎么做才能问如何度量出半个小时,45分钟,75分钟?

思路:

度量半个小时:

  • 第一个问题度量半个小时时最简单的,绳子虽然是不均匀的,但是一根绳子完整烧完所用的时间是固定的。从两端烧绳子,等绳子全部烧完所用的时间就是半个小时。

度量15分钟:

  • 已经可以度量出半个小时与一个小时了,所以想要度量出45分钟与75分钟只需要度量出15分钟就可以了。
  • 15分钟怎么度量的方法就是将半个小时的绳子从两端烧,绳子烧尽时所用的时间就是15分钟。而我们只有不均匀一个小时的绳子,从绳子两端烧尽可以获得半个小时,但是这根绳子不能用来进行15分钟的度量了,所以一个绳子是度量不出15分钟的,解决问题需要两根绳子
  • 取两根绳子分别编号1和2,绳子1从两端开始烧,绳子2从一段开始烧。当绳子烧尽时,熄灭绳子2。此时绳子2燃烧尽所需要的时间就是半个小时,从绳子2两端烧的话燃尽就是15分钟。关键点15分钟已经可以度量出来的了,那么剩下的问题就迎刃而解了。

具体解法如下:

  1. 度量30分钟:取一根绳子,从两端燃尽所欲要的时间就是半个小时。
  2. 度量15分钟:取两根绳子,第一根从一段燃烧,另二根从两端同时燃烧。当第二根燃尽的时候,将第一根剩余绳子从两端燃烧,第一根绳子剩余从两端燃烧耗尽所需要的时间就是15分钟。
  3. 度量45分钟:取两根绳子,采用上述方法所需的总时间就是45分钟(30+15)
  4. 度量75分钟: 取三根绳子,其中两根采用上述方法得到燃尽需要半个小时的绳子,然后从两端烧燃尽需要15分钟,取第三根绳子从一段烧,总共需要75分钟(15+60).

赛马问题

求出前三名

问题一:25匹马,5个跑道,最少比多少次能比出前3名?

答案: 7次

解答过程:

  1. 25 匹马随机分成5组,每组比赛一次,也即总共比5次,先看一下每组马的快慢情况

在这里插入图片描述

  1. 由于我们只需要找出最快的三匹马,因此把肯定不会选上的马淘汰掉,即每组跑的最慢的两匹马

在这里插入图片描述
3. 将每组跑的最快的一匹马进行1次比赛,这样我们就可以选出25匹马中跑的第一快的马

在这里插入图片描述
4. 此时可知A1是跑的最快的一匹马,B1和A2可能是跑的第二快的马,C1,B2 和 A3 可能是跑的第三快的马;让B1,A2,C1,B2 和 A3 共同比赛一次,可以计算出跑的第二快和第三快的马。
在这里插入图片描述


求出前五名

题目二:25匹马,5个跑道,最少比多少次能比出前5名?

答案: 最少8次,至多9次

解答过程:

  1. 25 匹马随机分成5组,每组比赛一次,也即总共比5次,先看一下每组马的快慢情况

在这里插入图片描述
2. 由于我们只需要找出最快的五匹马,因此把肯定不会选上的马淘汰掉,E1,D2 ,C3 和 B4 最好的排名就是第五,所以比他们跑的慢的马都淘汰掉

在这里插入图片描述

  1. A1 是跑的最快的一匹马,下面我们求解出跑的第二和第三名,第二名可能是B1或A2,第三名可能是C1,B2或者A3,让他们五个跑一次,算出第二和第三

在这里插入图片描述
第四名和第五名的计算,需要根据情况分类讨论:

  1. 假设1,2,3 名都处于不同的分组中,并且A2在上一轮比赛中得到了第4名的成绩,那么可知A2最好的情况也是总排名的第五名,所以后面的都可以淘汰掉了;B2同理,最好的总排名是第4名,那么B3最好的总排名就是第五名,因此后面的都可以淘汰掉了。
    在这里插入图片描述

情况1下,剩余8匹马,五名先选5匹马出来跑一次,保留前两名,再利用前两名和剩余3匹马组成五匹马,再跑一次,最终可以计算出第四名和第五名。因此情况1需要9次比赛,才能算出最快的五匹马。

情况1的变种就是A2上一轮跑了第3,A3跑了第4,B2跑了第5,此时通过排除会发现只剩7匹马,但是依然需要两轮同上的比赛才能计算出第四和第五名。
在这里插入图片描述

  1. 前三名都在同一组,此时通过排除不可能为第四和第五名的马后,会发现只剩下了4匹马,所以我们只需要在来一轮比赛,就可以计算出第四名和第五名。因此情况2,总共需要8轮比赛。

在这里插入图片描述

  1. 前两名位于同一组内,经过排除后,会发现剩余的马匹数量小于5,因此一轮比赛即可计算出最终结果。因此,情况3最终也只需要8轮计算。

在这里插入图片描述
更加详细的推导过程参考此文


接水问题

问题: 用5L和6L的杯,没有刻度,怎么量出3L的水

解答:

  1. 6L的杯先接满水,然后用6L的杯倒满5L的杯,此时6L杯剩1L水
  2. 清空5L的杯,然后将6L的杯剩余的1L水倒入5L的杯
  3. 6L的杯先接满水,然后用6L的杯倒满5L的杯,此时6L杯剩2L水
  4. 清空5L的杯,然后将6L的杯剩余的2L水倒入5L的杯
  5. 6L的杯先接满水,然后用6L的杯倒满5L的杯,此时6L杯剩3L水

问题: 3升的杯子和5升的杯子怎么得到4升的水?

解答:

  1. 5L的杯先接满水,然后用5L的杯倒满3L的杯,此时5L杯剩2L水
  2. 清空3L的杯,然后将5L的杯剩余的2L水倒入3L的杯
  3. 5L的杯先接满水,然后用5L的杯倒满3L的杯,此时5L杯剩4L水

种树问题

问题: 四棵树怎么种才能使任意两颗之间距离相等

思路:

  • 搞个正四面体的土堆,把树栽在4个顶点,其实也就是问4个点间距离两两相等,平面内是不可能的,只能考虑立体了

硬币问题

问题: 100枚硬币,甲和乙轮流拿,每次只能拿1-5枚,最后拿完硬币的人赢,让甲先手拿,怎么拿才能保证甲最后一定赢?

解答:

  • 需要甲赢,也就是说最后需要让甲拿完剩下的球,那么对于乙来说,就要求最后一轮拿不完剩下的球,而且无论怎么拿,剩下的球都会被甲一次性拿完。
  • 再结合题目条件思考: 双方一次性只能拿1~5个球,那么最后轮到乙拿的时候应该还剩6个硬币。
  • 在球的总数是6的倍数的情况下,后手者每次只需要拿 6 - 先手者所拿球个数,即可确保赢得最终的胜利
  • 又因为此处球的总数为100 ,比6的倍数96多4个球,因此甲在一开始只需要拿4个球,后面每次只需要拿 6 - 乙所拿球个数 , 即可确保赢得最终的胜利

总结:

  • 除尽的情况下,后拿者赢;(后者每次拿的个数都是除数 - 前者拿的个数)
  • 除不尽的情况下,先拿者赢;(先拿者先拿出被除数对除数的余数,然后的每一个回合,拿出除数-前者拿出的个数)

详细推导过程可参考


宝石问题

问题: 有2堆宝石,A和B一起玩游戏,假设俩人足够聪明,规则是每个人只能从一堆选走1个或2个或3个宝石,最后全部取玩的人获胜,假设2堆宝石的数目为12和13,请问A怎么可以必胜?

解答:

  • 先取获胜的情况:总个数不能整除时,余数为一次可取的个数
  • 后取获胜的情况:总个数能整除时
  • 只有一堆时,12时后取获胜,13时先取获胜
  • 两堆时,A先取12堆

本题和硬币问题思路一致。


核酸检测问题

问题: 假如现在有100个人,有一个人感染了新冠肺炎,问只检测一轮(即统一去做,每个人可以做多次,但是不能等到检测结果出来再去做)的情况下,如果用最少的试剂定位到感染者?

答案:

对1~100名进行二进制编号:因为2^6 < 100 < 2^7。所以用7bit的二进制进行编号:

  • 1号: 000 0001
  • 2号: 000 0010
  • 3号: 000 0011
  • 4号: 000 0100
  • 5号: 000 0101
  • 6号: 000 0110
  • 7号: 000 0111
  • 100号: 110 0100

所以:

  • 试剂瓶1:需要编号中bit0 为1的人一起去做检测,即1,3,5 …
  • 试剂瓶2:需要编号中bit1 为1的人一起去做检测,即2,3,6,7 …
  • 试剂瓶3:需要编号中bit2 为1的人一起去做检测,即4,5,6 …
  • 试剂瓶7:需要编号中bit6为1的人一起去做检测 …

最后,阳性为1,阴性为0,将试剂瓶的结果组成一个二进制数,试剂瓶7位最高位,试剂瓶1为最低位,得到的数字就是确认的那位。


不断更新中 … ,也欢迎各位留言补充自己遇到的智力题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1273765.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CISO在2024年应该优先考虑七项安全任务

专业安全媒体CyberTalk.org主编Shira Landau日前表示&#xff1a;现代企业的CISO们在2024年必须做出改变&#xff0c;要更多关注于企业整体安全路线图的推进与实现&#xff0c;让网络安全工作与业务发展目标保持更紧密的一致性。 首席信息安全官&#xff08;CISO&#xff09;是…

模拟算法【3】——1419.数青蛙

文章目录 &#x1f365;1. 题目&#x1f96e;2. 算法原理&#x1f361;3. 代码实现 &#x1f365;1. 题目 题目链接&#xff1a;1419. 数青蛙 - 力扣&#xff08;LeetCode&#xff09; 给你一个字符串 croakOfFrogs&#xff0c;它表示不同青蛙发出的蛙鸣声&#xff08;字符串 &…

WPS导出的PDF比较糊,和原始的不太一样,将带有SVG的文档输出为PDF

一、在WPS的PPT中 你直接输出PDF可能会导致一些问题&#xff08;比如照片比原来糊&#xff09;/ 或者你复制PPT中的图片到AI中类似的操作&#xff0c;得到的照片比原来糊&#xff0c;所以应该选择打印-->高级打印 然后再另存为PDF 最后再使用AI打开PDF文件再复制到你想用…

JSP+servlet实现高校社团管理系统

JSPservlet实现的高校社团管理系统 &#xff0c;前后台都有&#xff0c;前台演示地址:高校社团管理系统 后台演示地址:登录 用户名:sys,密码:123456 前台功能&#xff1a;首页&#xff0c;社团列表&#xff0c;社团风采&#xff0c;社团活动&#xff0c;新闻列表&#xff0c…

Vue中 env 文件是如何读取的? 优先级?

Vue中 env 文件是如何读取的&#xff1f; 优先级&#xff1f; start 今天来研究一下 Vue 中 env 是如何读取的。跟着我的脚步来学习一下吧。作者&#xff1a;番茄&#xff1b;编写时间&#xff1a;2023/11/30 前情提要 env&#xff0c;使用方式是process.env。简单来说&…

单链表相关经典算法OJ题:移除链表元素

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 题目&#xff1a;移除链表元素 解法一&#xff1a; 解法一的代码实现&#xff1a; 解法二&#xff1a; 解法二代码的实现&#xff1a; 总结 前言 世上有两种耀眼的…

element中el-form-item设置label-width=‘auto‘报错

文章目录 一、问题二、解决三、最后 一、问题 el-form中的设置了全局标题宽度是200px&#xff0c;此时想要对el-form-item取消标题宽度&#xff0c;设置了label-widthauto&#xff0c;结果&#xff0c;报错了~~~ <el-form label-width"200px" label-position&quo…

IOS/安卓+charles实现抓包(主要解决证书网站无法打开问题)

安装 官网下载 https://www.charlesproxy.com/latest-release/download.do 安装charles文档 流程 上述链接解决下图问题 使用介绍 Charles介绍 上述链接看一至三即可&#xff0c;了解首页各个按钮的作用 charles全面使用教程及常见功能详解&#xff08;较详细&#xff09…

【MATLAB源码-第92期】基于simulink的QPSK调制解调仿真,采用相干解调对比原始信号和解调信号。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 QPSK&#xff0c;有时也称作四位元PSK、四相位PSK、4-PSK&#xff0c;在坐标图上看是圆上四个对称的点。通过四个相位&#xff0c;QPSK可以编码2位元符号。图中采用格雷码来达到最小位元错误率&#xff08;BER&#xff09; —…

【开源】基于Vue+SpringBoot的服装店库存管理系统

项目编号&#xff1a; S 052 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S052&#xff0c;文末获取源码。} 项目编号&#xff1a;S052&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 角色管理模块2.3 服…

将class文件反编译成java文件

一、IDEA自带的Java Bytecode Decompiler 对于需反编译的class文件Kb比较大时&#xff0c;反编译后的文件就会报一大堆错误&#xff0c;适用于小Kb或者比较简单的class反编译 二、Jad jad是一个简单易用的命令行工具&#xff0c;适合快速简单的反编译任务 1.Jad下载地址 htt…

万宾科技监测设备,可燃气体监测仪特点一览

万宾科技的监测设备种类繁多&#xff0c;包括可燃气体监测仪、管网水位监测仪、内涝积水监测仪等。其中可燃气体监测仪是万宾科技的核心产品之一&#xff0c;用于监测环境中可燃气体的浓度&#xff0c;适用于对甲烷气体浓度进行实时监测&#xff0c;应用于燃气管网、排水管网、…

Python实验项目8 :科学计算与可视化

1&#xff1a;创建 numpy 数组。 要求&#xff1a; &#xff08;1&#xff09;使用 array()函数、empty()函数、zeros()函数、linspace()函数等创建 numpy 数组。 &#xff08;2&#xff09;使用 numpy 数组的索引和切片方法访问数组元素。 # 要求&#xff1a; # &#xff0…

MJPG-streamer方案实现物联网视频监控

目录 前言 一、JPEG&#xff0c;MJPG格式简介 JPEG MJPG MJPG的优点 MJPG的缺点 二、软硬件准备 三、编译MJPG-streamer 四、运行MJPG-streamer 五、其它常见用法 六、MJPG-streamer 程序框架 七、源码下载 前言 最近想做一个安防相关的项目&#xff0c;所以跟着韦…

ios 逆向分分析,某业帮逆向算法(一)

用到工具: 爱思助手CrackerXL(砸壳软件)越狱手机ida反汇编软件分析login 的sign 签名算法中自己写算法 已知我们32位,我们不妨猜测是md5 ,那我们试图使用CC_MD5 ,这个是ios 中的标准库, 我们使用frida-trace 注入hook一下,看看有没有 经过 是经过了这个函数,密码也是…

动态规划--整数拆分

题目描述 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n 2 输出: 1 解释: 2 1 1, 1 1 1。 示例 2: 输入: n 10 输出: 36 解释…

寿险公司通过开源治理保障数字创新,安全打通高质量服务新通道

某寿险公司致力于为消费者提供人性化的产品和服务&#xff0c;在中国保险市场中始终保持前列。该寿险公司以挖掘和满足客户需求为出发点&#xff0c;从产品开发、渠道销售、运营流程和售后服务等各环节&#xff0c;借助数字化工具&#xff0c;不断地努力探索并提升服务品质。 精…

建堆的时间复杂度和堆排序

文章目录 建堆的时间复杂度向下调整建堆向上调整建堆 堆排序实现 建堆的时间复杂度 下面都以建大堆演示 向下调整建堆 void Adjustdown(HPDataType* a, int size,int parent) {int child parent * 2 1;while (child < size){if (child1<size&&a[child 1] &…

第5章 线程级并行 摘录

5.1 引言 在微处理器发展的推动下&#xff0c;单处理器性能的增长速度在1986年到2003年期间达到高峰。 由于利用ILP的收益越来越少&#xff0c;单处理器的性能增长开始放缓&#xff0c;再加上对功耗的日益关注&#xff0c;计算机体系结构进入了一个新时代。多处理器在从低端到…

实验五 C语言函数程序设计习题 (使用函数计算两点间的距离,请编写函数fun,使用函数输出字符矩阵,使用函数求最大公约数和最小公倍数)

1. 使用函数计算两点间的距离&#xff1a;给定平面任意两点坐标(x1,y1)和(x2,y2)&#xff0c;求这两点之间的距离(保留2位)小数。要求定义和调用dist(x1,y1,x2,y2)计算两点间的距离。坐标中两点坐标之间的距离公式如下&#xff1a; #include <stdio.h> #include <math…