张昌蒲-严教算法
# 张昌蒲-严教算法
三国杀于 2020 年推出了武将张昌蒲,其中涉及到了算术,特此记录下怎么算比较方便。
先说下技能「严教」:出牌阶段限一次,你可以令一名其他角色亮出牌堆顶 4 张牌并将之分成点数之和相等的两组,你与其各获得其中一组,若剩余牌数大于 1,你本回合手牌上限-1。
本博客主要参考自橙相的教学视频:【百坑讲坛·零】第 100 期·量产人形自走计算器 (opens new window),主要有 3 种实用的方法。
# 基础
最简单的就是拿点数相等的,或者看看哪几张牌的点数之和等于另一个点数。
此外,如果只有 4 张牌,就比较简单了。我们可以直接将其全部拖下来,可以看到点数之和是奇数,则一定是拿不完的,需要丢个奇数(例如 13):
如果单独看 4 张并心算,可能会看漏,而直接拖下来的话,不用验算,一定能对,拖只要几秒就行,很快,上下挪也很快。如果靠口算,则算好后再挪就比较费时间。
如果是 5 张及以上,用该方法难度会加大,不推荐使用。
# 等差数列
举个例子:牌堆里有 3,4,J,Q 几张牌,3 和 4 相差 1,J 和 Q 相差 1,那我们只需将最大的和最小的放到一边即可,也就是 3+Q = 4 + J。相差 2,相差 3,相差 5 都行。这是最简单也是最实用的方法。举例:
# 双倍插入法
该方法也很实用,非常建议掌握。
举个例子,目前根据等差数列可以得到这样的结果:
如果我们将第 2 行的“杀”放到第 3 行,那么第 2 行会少 3 点,第 3 行会多 3 点,两者就会差 6 点,此时就可以将 6 点的“桃”放到第二列:
熟练后不用过脑子,可以直接放:看到第一行中某张牌的点数,是下面两行中某张牌点数的两倍,就可以直接放。例如上图中,第二行有个 6 点的桃,第一行有个 Q 点的“方天画戟”,那么就可以直接将 Q 点拖到第二行,6 点拖到第 3 行:
# 差值置换法
该方法难一点点,但是如果想牌拿关键牌的话,就要掌握该法。
上一步我们是得到了这样的结果:
如果我非常想要第一行的“无懈可击”,怎么办呢?
我们可以看到,“方天画戟”和“无懈可击”相差 1,而第 3 行的 3 点的“杀” 和 第一行的 2 点的“八卦阵”也相差 1,那如果两边都减一,点数不还是相同吗?
然后我们就可以:
- 将“无懈可击” 和 “方天画戟”交换
- 将 3 点的“杀” 和 第一行的 2 点的“八卦阵
这样第二行的点数 -1,第三行的点数 -1,两行的点数相等:
我们还可以继续用双倍插入法,可以看到此时第一行有个 4 点的“杀”,第三行有个 2 点“八卦阵”,挪动后,结果:
此外,可以看到第 2 行有个 6 点的“乐不思蜀”,第 1 行有个 Q 点的“方天画戟”,挪动后最后结果如下:
# 例子
掌握了理论,接下来就是多加练习了,可以参考视频 【百坑讲坛·零】第 100 期·量产人形自走计算器_哔哩哔哩 (opens new window) 里的例子。
我们可以看看下面这个例子:
第一行的 9 点和 J 点,可以看成一张点数为 20 的牌,而 20 和 Q 点的“闪电”相差 8;第二行有个 4 点的过拆。此时我们就可以:
将 20 点放到第 2 行,将 Q 点放到第 3 行,此时两边相差 8 点:
将 4 点放到第 3 行:
这个原理就是让第 2 行和第 3 行相差 8 点,然后将 4 点挪到第 3 行,两行的点数就会相等了。其实也是双倍插入法的一个实例。
再举一个例子:
然后可以看到 Q 点,虽然第 2,3 行中没有点数为 6 的,但是可以看到第 2 行 K 点的“铁索连环”和第 3 行 7 点的“闪”相差 6,因此可以将 K 点拖下,将 7 点放到第 2 行,此时两行就相差 12 点:
再将 Q 点放到第 2 行,就算完了(剩下的牌是奇数,则一定是拿不了的):
这个可能一下子理解不了,没关系,多练习几次,融会贯通后就可以很快了。
# 练习程序
有不少大佬写了练习用的程序,例如:张菖蒲严教练习程序分享(非游戏中使用的计算器)+up 主实况视频_教程 (opens new window)
也有微信小程序,参考:张菖蒲计算器 (opens new window)
# 小结
算牌的步骤小结:
先放点数相同的
寻找简单和,例如 1+4 = 5 , 3+6 = 9
然后放等差数列的
双倍插入法:
- 在第 1 行看看有没第 2,3 行一半点数的牌,有则可以直接换
- 在第 1 行中,看看几张牌点数的和,是否为第 2,3 行中某张牌(或某几张牌)的倍数的 2 倍,有则可以直接换
- 在第 1 行中,算出相差的点数,在第 2,3 行中寻找差值为此一半的两张牌。
6 张以上一般都有 30s,加上黄条的话绰绰有余,所以大家也不用太急。