前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >魔术里的集合、映射和关系(五)——优雅之作《4 Kings 折纸》的集合描述

魔术里的集合、映射和关系(五)——优雅之作《4 Kings 折纸》的集合描述

作者头像
magic2728
发布2020-03-16 10:35:58
4750
发布2020-03-16 10:35:58
举报
文章被收录于专栏:MatheMagician

今天,我们来进入《4 Kings 折纸》这个魔术的数学部分。

先回顾一下表演视频:

视频1 4K折纸

魔术剖析见系列作品上一篇,下面是完整的数学模型。

《4 Kings Folding》的集合描述

对于这个问题,我们对这个扑克牌矩阵以左下角为原点进行编号,用二维坐标来代表每一张牌,这是我们第一个关心的量;还有一个是牌面状态cond,取值face或back,表示牌面或牌背向上;每一张牌的点数并不重要,但是是个识别符号以及承担了效果的展现。令牌集

K = {(i, j, cond) | i, j in N, 0 <= i, j <=3, (i + j is even} xor (cond = face)}

这是一个描述法定义的集合,xor是亦或符号,英文是exclusive or,即一般的or逻辑去掉了两个逻辑值都为真的情况:

A xor B = (A = 1 and B = 0) or (A = 0 and B = 1)

大家可以自行想象这个运算的真值表,这里不画了。

值得注意的是,这么定义下来的按位进行的xor操作,恰好和不记进位的二进制加法的结果一致。换句话讲,原本的逻辑操作,可以在二进制数上模拟出有数值意义的运算来了。

同时,这个集合也是个动态集合,即,它只根据扑克牌的位置和正反状态来确定是否在其内,而和其具体是印着哪个点数的哪一张并没有关系,哪张牌都可以处在这个集合中,也可以因为这个位置或正反的变化而变得不在这个集合中。比如一张初始时在集合内的红桃K,往左边移动一个位置,就不在了,而另一张其他牌,同朝向地放进了红桃K的位置,它就成了这个集合的了。

xor相关运算性质

接下来我们讲讲这里的xor运算的一些性质。

第一个性质,其有取非操作对称性,即把1,0全部交换,性质保持不变,即:

A xor B = (not A) xor (not B).

相当于g(f(x)) = g(x),即对任意(B1, B2)的二元bool元组,都是函数f((B1, B2)) = (not B1, not B2)在g((B1, B2)) = B1 xor B2性质下的不动点,而全集的不动点,我们一般就称变换函数本身的对称性了,而xor起的作用是限定了一个观察角度,使得结果真的不变(其实所有的不变性都是限定了观察角度的,比如对称的正方形是假定你区分不了那4个顶点谁是谁的,哲学也告诉过我们,人不可能两次踏进同一条河流。)。当然,f函数本身也是一个二阶对称函数。

这个性质在后面折叠过程中保证了其不变性,我们慢慢道来。

于是,把于整个牌桌上的牌的状态描述作为全集A,那么其补集为:

C(A, K) = {(i, j, cond) | i, j in N, 0 <= i, j<= 3, (i + j is even} nxor (cond = face)}

nxor 叫同或,结果取xor结果的非,即A xor B = not (A nxor B),这也才符合补集的定义。把结果展开,我们有,A nxor B= (A = 1 and B = 1) or (A = 0 and B = 0)。其对称性质和nor也一样,一个二元bool变量都取非这个操作在xnor下是对称不变的:A nxor B = (not A) nxor (not B)

另外,A nxor B= A xor (not B),对称一下也成立:A xor B= A nxor (not B)。这从真值表上看是很显然的,而从人主观理解的两个bool值是否相等这个角度也很好理解,该运算取非,等价于两个操作数任何一个取非,因为其是否相等这个性质,恰好在其中一个改变的时候跟着改变。

以上是,描述扑克牌状态的集合中用到的数理逻辑运算xor相关的一些性质介绍。

模型推导

这里,如果照视频里那样摆扑克牌的牌面状态,以及把K放在特定位置(具体在哪几张我相信大家可以自己推出来哈),那么K集合在初始时候的,就是那4张K了。

有了这套描述模型,我们再看一下,扑克结尾的状态。反正我们要求了结尾必须折成一叠牌,也就是一个特定的位置,每张牌也还在,有着其特定的牌面状态。于是(i + j)的奇偶性成了一个对所有扑克牌相同的未知常量,所以,其(i + j is even} xor (cond = face)结果仅由牌面结果而定。那么自然,最开始就在K集合里的牌,如果他们在折叠过程中从未改变过确定集合K归属与否的性质,那么最后的朝向就一定是一样的,才使得让他们能够处于同一个集合的性质不变,这在K补集里的也一样。表演时候,我从来没有记忆过到底哪个位置对应K正面向上,哪个对应反面向上,因为最后折的那一次看看就可以发现了,再不济,把它们都打开再说话也可以,效果产生的点是,他们都一样,一样成什么样,并不关心。

接下来只有一个问题了,发明一些合理的操作,不改变扑克牌的归属K集合与否状态,即要让这些操作不改变那个K集合性质的xor操作的结果,即,要用到不变性,要用到对称性。

我们来回顾一下我们可以进行的折叠操作的空间。无论行还是列的折叠,无论折多少行或列,扑克牌都会沿着横坐标或者纵坐标改变奇数个位置而改变奇偶性,而其牌面状态也改变。后者很好理解,而前者的具体原因是,翻折这种操作对应的其实是轴对称变换,而且允许你用的对称轴坐标必然是0.5,1.5, 2.5这样的数,也就是两行或列牌的中间那条缝,坐标也会变为1 / 3 / 5 – i / j这么多,而由奇偶的运算性质或者更深的C2群性质,这显然会改变原来i / j值的奇偶性。而要求从1之类的坐标位置,也就是从牌的长方形对称轴上折过去显然是不合理的,而且这样也打破了我们许下要的限定,此时位置奇偶性不会发生变化。故这里的折叠限定无比自然和可以被不知不觉地接受,妙哉。

好了,xor恰好具有这样的对称性,即A xor B = (not A) xor (not B),每次按照要求的折叠,都恰好对A,B两个性质进行了取非,最后结果不变。正是因为具有这样的恒等性质,你的每一次横竖折叠都不曾改变上面划分K集合的那个关键性质条件的结果,也就不会改变每张牌的集合归属。因此,最终,所有K朝向同一面,就是一个美丽而奇迹般的必然结果了。

这里,数学变成魔术最巧妙的地方是,看起来混乱的操作中存在这对称性,不变性,恒等式,而只有最后的结果,让你能够瞬间看清这个集合原本的全貌,而其他时候,都混杂在更加复杂的运算里。

还有一点,这里的折叠操作,也不允许对角线或者任意斜率为1或-1的线的折叠,不然也要把牌折弯了。而数学上不允许的原因是,哪怕对角线的牌不动,可以证明,其余折叠牌只要沿着斜率为1或-1的线折叠,那么其前后(i + j )(mod 2)的结果一定不变,典型的,沿着y = x折叠,直接将坐标换了位置,加法交换率保证了最后结果不会变,在其他情况下,根据折叠前后点连线斜率乘以对称轴斜率为-1可得,其模2结果也相同。

有同学说,y = x折叠能够理解,那当沿着y = (-) x + k来折叠的时候,又不想进行上面的推导,怎么才能轻而易举说明,i + j的结果奇偶性不变呢?

哈哈,对于这个问题,观众用哪根对称轴你就以其上一点作为原点,左右转45度作为xy轴方向可好?这样是不是就把新问题化为沿着y = x对称的老问题了?

为什么想到这个方法来证明,而省去那些复杂的平移和变换操作来说明呢?

因为高中物理学过,运动是绝对的,对运动的描述是相对的;高中数学学过,化归的数学思想方法。

怎么样,读书还是有点用吧?

本系列的数学魔术精彩还刚刚开始,后面文思泉涌,精彩继续!

有视频先睹为快,看看你能不能找到里面的数学性质!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MatheMagician 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档