TapTap Android 站

Python通用解法 平均每关2.9秒

03/0930 次播放综合
解法简单来说就是先只点下7层 把上7层还原 一些关卡到这里就结束了 但绝大多数还未结束 最后一层未完全还原 这时候会有n个异色 n∈[1,8]
异色的位置从左往右数可能是1、37、268、12345678.....  一共有2⁸-1种不同的位置分布 该如何解决? 不难知道 在每格只点0次或1次的情况下每关有且只有一种解法 先前我们只点了下7层 第一层还没点 解决最后一层异色的关键其实就在第一层 先前还原完上7层后最后一层的异色位置我们可以当做第二关来做 即异色位置为黑 其余全白 我猜想 若先在第一层点了n个不同的格子之后 再用第一步的方法一步步往下顺 顺到最后一层 都有一一对应的位置排列 理论成立 实践开始 我从第一格试到第八格 得出
1:5
2:4 6
3:3 5 7
4:2 4 6 8
5:1 3 5 7
6:2 4 6
7:3 5
8:4
即点第一层第1格后对应的是最后一层的第5格 点第2格对应最后一层46格......   
若最后一层异色位置为13 第一层对应的是1357 因为奇偶数之间互不干涉 所以即使不用脚本也可以轻松过关
若是使用脚本 如何从下往上还原就成了一个难题 即从13得1357 这个过程用算法实现颇为复杂 所以我动了点歪脑筋
现在我要求最后一层为13时 第一层是什么 不妨假设13为第一层 其对应的最后一层是37 再将37当做第一层 对应的最后一层是7....
13
37
7
35
1
5
1357
13
又回到13了 而13上面的1357就是我们要的解 可以发现这里面没有3 没有57 没有......  因为这只是奇数中的其中一组数的循环 偶数同理 大家可以自己尝试 而这种方法 人力计算有些耗时间 但放到程序语言中就不一样了 相比之前 我们发现了规律 写起脚本来也更加省事 头发也可以少掉点 我使用的编程语言是Python 实际效果如视频所示 代码我再完善一下 整理过后再发出来 现正尝试将这套方法封装成一个APP 但那就不是Python的事了...
评论
只看作者
最热
TapTap
良言一句三冬暖,恶语伤人六月寒
TapTap
发帖者翘首以盼,快来和 TA 互动吧!

良言一句三冬暖,恶语伤人六月寒

表情
图片
投票