5张牌魔术包括一名魔术师,其助手按顺序给了他们4张显示的卡和一张隐藏的卡,魔术师必须猜出隐藏的卡。
警告:下面的解决方案!立即离开或宠坏它。
解决方案
这里的诀窍是五张卡是按特定顺序给出的!
是给定顺序的5张卡。
是的卡号,其中(数字顺序)。
,其中是一个卡号和是整数,等于卡号步骤的右边在,如果必要的话缠绕到开始处。
是的西服在(西服顺序)。
,其中是一个卡号和是西装表示与卡号的卡和花色。
,其中和是卡,为真,当的西装是向左的的套装在,或他们的套装相等且的卡号是向左的的卡号。
如果 a < b为假,则 a > b(其中和为卡)为true。
,其中,和是卡,是它们的这种排列的排列索引,由下表指定:
与5-卡魔术的解决方案是问题是:
挑战
到目前为止,一切都很好。但是,这里已经要求进行上述指定的计算。相反,您面临的挑战是,给5张卡片没有特定的顺序,以正确地对其进行排序。这意味着输出中的前四张卡将代表第五张。换句话说,当助手。要求:
- 。
- (也就是说,这必须是可能的)。
例
让我们考虑一下set 7H,2D,6D,5C,6C
。首先,我们采用25对:
7H,7H 7H,2D 7H,6D 7H,5C 7H,6C
2D,7H 2D,2D 2D,6D 2D,5C 2D,6C
6D,7H 6D,2D 6D,6D 6D,5C 6D,6C
5C,7H 5C,2D 5C,6D 5C,5C 5C,6C
6C,7H 6C,2D 6C,6D 6C,5C 6C,6C
然后,我们显然将两次包含同一张卡的5对删除,它们不在一个牌组中:
7H,2D 7H,6D 7H,5C 7H,6C
2D,7H 2D,6D 2D,5C 2D,6C
6D,7H 6D,2D 6D,5C 6D,6C
5C,7H 5C,2D 5C,6D 5C,6C
6C,7H 6C,2D 6C,6D 6C,5C
之后,由于西装必须相同,因此,成对的不同西装是不对的:
2D,6D 6D,2D 5C,6C 6C,5C
最后,我们检查是否有可能通过添加最多6个来移除第一对卡到第二对卡:
2D,6D 5C,6C
现在我们有了有效的对:2D,6D
和5C,6C
。每对的第一张卡是卡1,最后一张是卡5。
5C,6C
为了简便起见,我们将在这里使用。整个集合是7H,2D,6D,5C,6C
,因此,我们选择了一对中的2张卡7H,2D,6D
。这些卡将代表6 - 5 = 1
,因此我们必须按“最小,中,最大”的顺序进行排序。7H > 2D < 6D < 7H
或简单地说2D < 6D < 7H
,现在我们有了2D,6D,7H
。
最后一步是将所有这些放在一起,因此我们的结果将是5C,2D,6D,7H,6C
。
澄清说明
- 您可以使用
10
代替T
。 - 您可以使用的一个
♠♥♦♣
,♤♡♢♧
或♠♡♢♣
代替的CDHS
分别。 - 这是代码高尔夫球,最短的代码获胜。
测试用例
您可以为每个测试用例输出一个或多个有效解决方案。
8S,TD,5C,QS,TS -> 8S,5C,QS,TD,TS
... 8S,TD,TS,5C,QS
... TS,5C,8S,TD,QS
JD,KH,4S,9D,8S -> 9D,KH,8S,4S,JD
... 4S,JD,KH,9D,8S
4H,4D,TH,KH,2C -> 4H,KH,4D,2C,TH
... TH,4D,2C,4H,KH
... KH,4D,TH,2C,4H
3S,KS,8S,KH,9H -> 9H,8S,KS,3S,KH
... 3S,KS,9H,KH,8S
... 8S,3S,9H,KH,KS
... KS,KH,9H,8S,3S
KH,TS,3C,7H,JD -> 7H,TS,JD,3C,KH
4C,KC,TD,JD,QS -> KC,JD,QS,TD,4C
... TD,4C,KC,QS,JD
AC,5H,8D,6D,8S -> 6D,AC,8S,5H,8D
AS,TC,3S,2H,9C -> 9C,2H,AS,3S,TC
... AS,9C,2H,TC,3S
4C,JS,AS,8H,JC -> JC,JS,AS,8H,4C
... JS,JC,4C,8H,AS
4H,QS,TH,QC,AC -> QC,4H,QS,TH,AC
... 4H,QS,QC,AC,TH