一道有趣的电路板面试题,征求好的解法

本文提出了一道关于如何使用最少的检测次数从多个电路板中找出一块好的电路板的谜题,并通过逻辑推理给出了详细的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一道有趣的电路板面试题,征求好的解法

一、试题

N块电路板,每个电路板可以检测别的电路板是好还是坏,但不能检测自己。好的电路板能得出准确的结果,但坏的电路板得到的结果就有可能是错的。电路板中好的比坏的要多。

请用最少的检测次数,找出一块好的电路板的方法来,并说明的分析理由。

二、分析

1.假设用一块好的电路板检查另一块电路板

序号

测试结果

测试结果说明了要检测的电路板什么

1

好的

是好的

2

坏的

是坏的

换句话说:

序号

待检查的电路板本身就是

测试结果

1

好的

好的

2

坏的

坏的

2. 假设用一块坏的电路板检查另一块电路板

序号

待检查的电路板本身就是

测试结果

1

好的

好的

2

坏的

3

坏的

好的

4

坏的

3.两块电路板互相检查

3.1两块好的电路板互相检查结果是:

仅仅一种结果

序号

测试结果

1

好的,好的

3.2两块坏的电路板互相检查结果是:

下面四种结果中的一种:

序号

测试结果

1

坏的,坏的

2

坏的,好的

3

好的,坏的

4

好的,好的

3.3 一块好的电路板与一块坏的电话互相检查的结果:

序号

测试结果

1

好的,坏的

2

坏的,坏的

也就是说,不可能出现测试结果,两个都是好的情况。

3.4 两块电路板相互测试的结果:只有3种结果:

1.都是好的;

2.都是坏的;

3.一个好的,一个坏的;

三、推理

1.两块电路板互相测试,测试结果是都是好的

如果两块电板板互相检查,如果得到的结果正好都是两个好的,那么,我们可以推理出:

两块电路板,要么都是好的,要么都是坏的。

序号

两块电路的测试结果是

测试结果说明了什么

1

两个好的

两块电路板都是好的

2

两块电路板都是坏的

要么两块电路板要么全好,要么全坏。

2. 两块电路板互相测试,测试结果是一个好的,一个坏的

如果两块电板板互相检查,如果得到的结果是一个是好的,还有一个是坏的,那么,我们可以推理出:

序号

两块电路的测试结果是

测试结果说明了什么

1

一个好的,另一个是坏的

两块电路板都是坏的

2

两块电路板一个是好的,一个是坏的

说明至少有一块电路板是坏的。

3. 两块电路板互相测试,测试结果是两个都是坏的

如果两块电板板互相检查,如果得到的结果:两个都是坏的,那么,我们可以推理出:

序号

两块电路的测试结果是

测试结果说明了什么

1

两个都是坏的

两块电路板都是坏的

2

两块电路板一个是好的,一个是坏的

说明至少有一块电路板是坏的。

四、推理结果

1. 两块电路板互相测试,测试结果:两个都是好的

两块电路板要么都是好的,要么都是坏的。

4. 两块电路板互相测试,测试结果是只要有一个是坏的

至少有一块电路板是坏的。

五、解题思路

1第一步找出一块坏的电路板

用第一块电路板与余下的N-1块电路板,两两测试,一旦测试结果第一次出现了:

有一个是坏的,不管另一个测试结果是好,是坏。

将其记录下来;

一旦测试结果还出现了,有两次的测试结果都是好的,就停止测试。

注意:如果循环了一遍,结果都没有出现测试结果都是好的,说明第一块电路板,就是坏的。

先分别记录 测试结果是两个好的,两块电路板名称分别叫做AB;

再分别记录 测试结果是一个好的,一个是坏,两块的电路板分别叫做CD;

然后分别记录 另一组测试结果是两个好的,两块电路板名称分别叫做EF

接着A测试C,并且也测试D 如果测试都为好的,可以断定AB都是坏的;

B测试C,并且也测试D,如果测试都是好的,可以断定AB都是坏的;

一旦确定了AB都是坏的。

E来测试A, 如果测试结果是好的,说明E也假的;

E来测试B 如果测试结果是好的,说明E也假的;

F来测试A, 如果测试结果是好的,说明F也假的;

F来测试B, 如果测试结果是好的,说明F也假的;

注意:用E来测试A, 如果测试结果是坏的,并不能说明E就是好的电路板

2.第二步用未知的电路板来检测这块坏的电路板

如果是结果是好的,可以肯定这块未知电路板是坏的,将他放到坏的电路板的一堆里,或者数字组里,或者叫添加到坏电路板的集合里;

如果测试结果是坏的,该块电路板好坏,不可确定,是未知;

然后用他来测试坏的电路板里集合里的每一块电路板,只要发现测试结果是好的,就可以肯定该电路板,是坏的,可以添加到坏的电路板集合中去。

六、征求问题解法

原来以为很Easy,偶想了好半天,太头疼了,都没有一个好的解法,特此征求优快云朋友各路英雄豪杰,有什么好的算法。谢谢!

推荐扩展阅读:

《2012年系统分析师/项目管理师上午考试的8点黄金建议之二》

《成为江苏卫视《一站到底》节目站神之策略》

《一个超有趣的变色龙智力题》

《考考码农们的想象能力》

《一个技术工作者的四大核心价值理念》

《再次考考码农们的想象能力》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值