转跳到内容

有点无聊啊,给大伙搬一个迷题玩玩


rabbits

只显示该作者

只有该作者的内容显示中。 返回到主题

推荐贴

首先测试密码000...111...444...999共10次

即存在3个可能的数字,命名为A、B、C(AAB这类出现2个重复数字的最后讨论)

A、B、C至多代表3个数字,剩下一个无关数字命名为X

 

初始状态:输入密码ABX,若无反应,则进入情况1,若有反应,则进入情况2

 

情况1:输入密码BCA,若无反应,则进入情况1-1,若有反应,则进入情况1-2,若开锁,则进入情况1-3

 

情况1-1:1不为A,2不为B;1不为B,2不为C,3不为A

综合可知,密码为CAB

 

情况1-2:1不为A,2不为B,密码不为BCA,可能存在1→B/2→C/3→A

假设1为B,由于密码不为BCA,则密码为BAC

假设2为C,1不为A,且1不为C可推出密码为BCA,矛盾

假设3为A,2不为A,且2不为B可推出密码为BCA,矛盾

可知密码为BAC

 

情况1-3:密码为BCA

 

情况2:输入密码ACB,若无反应,则进入情况2-1,若有反应,则进入情况2-2,若开锁,则进入情况2-3

 

情况2-1:可能存在1→A/2→B,密码不为ACB,1不为A,2不为C,3不为B

综合可知,2为B,密码为CBA

 

情况2-2:可能存在1→A/2→B,密码不为ACB,可能存在1→A/2→C/3→B

假设1为A,由于密码不为ACB,则密码为ABC

假设2为B,且1→A/2→C/3→B至少存在一项,可知1为A,推出密码为ABC

假设2为C,由1→A/2→B中至少存在一项,可知1为A,推出密码为ACB,矛盾

假设3为B,由1→A/2→B中至少存在一项,可知1为A,推出密码为ACB,矛盾

可知密码为ABC

 

情况2-3,密码为ACB

 

共需要输入密码10+2次

 

638943532_.png.3c5e14049e1c60f829857ba4702b8a38.png

 

特殊情况:只存在两个数组发出响声

输入密码会获得3种反馈:1、无反应 2、发出响声 3、开锁

当输入两次密码时,应该存在反馈情况1-1,1-2,1-3,2-1,2-2,2-3,3共7次反馈

由A、B组成的三位数共AAB,ABA,BAA,BAB,BBA,ABB共6种组合

即当前7次反馈中,需要组成(1)+(2+3)的反馈或者(3+3)的反馈(括号内是同一层次的输入反馈)

当输入形式为AXX时,会导致一位的确定,在进行下一步时,由于事先知道一位的值,输入密码的反馈1、3会不共存,此时反馈仅为(2+2),不成立

当输入形式为ABX(AAX)时,会确定2位的数值,在进行下一步时,会分为BAX(BBX)组和其余组,BAX(BBX)组中,只存在两种组合,反馈最多为(2+3),不成立

当输入形式为AAB时,已经确定了AAB和BBA的值,在进行下一步时,仅剩3种反馈,即反馈最多为(1+1)+(3),不成立

综上,当只存在两个数组时,需要至少输入三次密码(比如AXX,XAX,XXA)

 

共需要输入密码10+3次

 

综上所述,大门的密码为13

 

,由雪月夜修改
修改了一下,更容易理解
链接到点评
  • 回复 55
  • 创建于
  • 最后回复

本主题的最活跃

本主题的最活跃

贴的图片

13 小时前, rabbits 说道:

写的挺认真的,说几个问题哈:mx077:

  首先是问题被复杂化了。使用012,123的方法创造排列和000,111的方法创造组合的核心思想是一样的,也就是说确认密码的最大步数都应该是13(讨论最小步数是没有意义的,因为不管什么方法都可以在输入第一次的时候直接蒙对)。

  其次是题目暗含了确认密码后再输入密码的一次,所以正确答案是14次。

  你的思路在只响两声的情况下是对的,但是三声的情况可能出了点问题,核心思路是从三声的数组中选出数字排列排除错误可能,这个是没问题的。但是只输入两次就能得出正确答案是不可能的,三声响的比如123、456、789,那么A一定是147中的一个,BC同理,一共有6种可能。相当于去解三个三元一次方程,只测两次是确定不了的,因为两次响与不响和开锁组合起来虽然有7种组合,但实际不可能使这7种情况全部出现。你可以试一下在3x3的格子里每行涂黑一个不同位置的格子,看看能不能只通过两次筛选就能将涂格子的6种可能变成一种。

012和000的排列确实是一样的(当时短路以为这样可以避免只响两次的情况)

至于响三次的情况,我重新试了下。。应该是没问题的,2次就可以确定A.jpg.05af05ee56261b42cf541667ea92d0eb.jpg

链接到点评
4 分钟前, rabbits 说道:

行吧,我不是特别理解你的排除方式:mx028:。你能举个例子吗,假如是123,456,789响了。那么它有下面6种情况,黑点代表了正确密码对应的位置,第一个图表示了123,456,789的位置,其他5附图我省略了。请按照你的方法只用两次就能排除掉其他5种情况选出正确的情况。

捕获.PNG

:mx051:其实是我脑子短路了才想出的012这种排序。。。实际上和000是一样的(所以之后用000来举例,容易理解些)

可以直接把我那张图当做000、111、222来处理

A=0,B=1,C=2

前面那个表格

×代表排除的值,√代表确认的值,当值确定后,将对应位置填上√,同行、列填上×,逐一排除

 

做了张简单的流程图(我的同学朋友们已经习惯我的表达不清了)

1467433547_.png.6f615bcb00de63b5b9d4acab9c06f474.png

 

链接到点评
  • 攸薩锁定了本主题
游客
此主题已关闭。
×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款