Ruby掉毛怪的回答
我面试的时候被问到过这道题,后来现场研究了半个小时得出的答案。
五张里至少有两张是花色一样的,选择其中一张作为暗牌,另一张摆在最前面用来指示花色。
相同花色这两张点数x,y。 要么 ,或者反过来。 因为点数一共13张,13张牌排成环任意不同的两张距离一定不超过6。
我现在这里举个例子,假如两张牌点数分别是6和K,那么把K摆出来猜6,K+6=6。 要是7和K,那么把7摆出来猜K,7+6=K。无论相同花色的两张牌点数是怎么样的总能找到x=y+a,a不超过6的关系。
就假定 ,那么先摆出y,再用剩下三张牌的相对顺序对应是+1~+6中的某种情况a,对应运算就可以得到x=y+a了。
剩下三张,我们约定按点数大小、花色大小排序,具体约定了什么规则无所谓,只要能判断牌之间的大小关系即可。具体的实现方法可以是所有牌先按照桥牌的花色比大小,花色大的就算大。花色一样按照点数比大小,排出来最大最小的顺序。比如黑桃Q>黑桃2>红桃10>方片K等等等。三张牌确定好大小关系之后,观察最摆放顺序是小中大就+1,小大中就+2,到最后一种情况大中小+6这样
举个例子:拿到红桃2,K 和三张其他牌。甲先展示红桃K,三张其他牌按约定花色点数确定的相对顺序、按照相对大小132的顺序摆出剩下三张牌。乙看到第一张是红桃K,确定花色是红桃,并且在红桃A~红桃6之内。用后三组牌的相对顺序132计算得到+2,红桃K+2=红桃2, 得到甲手里剩下的是红桃2。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...