今年春晚刘谦魔术火了,其实仔细分析就是数学问题,抽时间写了个易语言分析的程序,源码 奉上。
' ’‘揭秘:
' 重要的步骤前 我加了* 表示
' 第一个*号, 就是从顶部拿3张牌 插入中间,结果会怎样,不管原来几张牌如何排列,经过本步骤后一定会出现首张与尾张相同的情况,如果没做到,可以和小尼一桌。
' 这里延伸一下, 如果魔术开始是5张牌,这里就要拿4张牌, 依次类推。。。
' 第二个*号,很神奇,必须的步骤,使底牌排在了准确的位置,具体来说就是:
' 如果 手余 5 张牌,循环一轮后底牌在第 3 位置,如果手余 6 张牌,循环一轮后底牌在 第 5 位置,本操作很重要,使其正好符合 约瑟夫序列
' 第三个*号,约瑟夫问题的实施。过程不能错
' 至于为何是下翻7张,其实也不是巧合,有兴趣去了解下约瑟夫问题, 下面我们来分析 约瑟夫问题的解法,递归法。
' 本程序只从程序算法角度解决问题,还有更好的数学解法,从略。
最后加上 约瑟夫问题的解法 ,完美了