一个纯数学扑克魔术

今天刷知乎看到的,记录一下思路。

这个魔术的总体思路是,让一个观众任意抽取一套扑克牌(去掉大小王之后)中的五张,经过助理的一些操作,将其中一张牌给观众,另外四张牌给魔术师, 让魔术师能够根据这四张牌的内容推理出观众手里的那张牌。

这个魔术里面,助理实际上需要的操作复杂的多,这个意义上,助理更像是魔术师。(助理编码->魔术师解码)

操作:

  1. 观众任意选取五张牌,并交给助理。注意因为是在一套扑克牌内,所以:

    • (1)不可能抽到两张完全一样的牌。

    • (2)由于抽屉原理,五张中一定存在两张的花色是一样的。

  2. 助理找到两张花色一样的牌,如果他们的数字之间的差<7,则将较大的一张给观众,否则,将较小的一张给观众。

  3. 助理对剩下四张牌进行排序,并将四张牌交给魔术师。要求为:

    • (1)最上面一张是那张花色与观众手中的牌花色一样的牌。

    • (2)如果两张牌数字之差\(d<7\),则记\(r=d\),否则记\(r=13-d\),此时\(r\)只有六种取值:\(1-6\)

    • (3)根据\(r\)的值排列下面三张牌的顺序:约定当数字大小相同时,梅花<黑桃<方块<红桃,则顺序对应如下表所示:

    \(r\) 顺序
    1 小中大
    2 小大中
    3 中小大
    4 中大小
    5 大小中
    6 大中小
  4. 魔术师根据助理给过来的牌的顺序,推断观众手中的一张牌。

    • (1)将扑克牌从左到右展开,先看最右边一张牌的花色,即可确定观众手中牌的颜色。

    • (2)根据左边三张牌的顺序确定一个\(1-6\)之间的数\(r\),再读出最右边一张牌的数字\(a\),那么观众手中的那张牌的数字为\(x = a+r(mod\ 13)\)

原理:

  • 确定花色的原理就是抽屉原理,这个不用说了。

  • 确定数字的原理是通过三张牌的顺序对应一个\(1-6\)之间的数\(r\),但只知道花色的情况下,数字大小有\(12\)种可能(除了魔术师手上那张牌的数字),所以通过交换大小数字的方式来用超过13的部分模13的余数,让可编码范围拓宽至所有可能的\(12\)种数字。