You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3座塔场景下磁盘反向移动n次后的位置计算通用公式求解

3塔反向移动位置通用计算公式

前提说明

现有3座塔对应编号规则:A=1、B=2、C=3,正向移动定义为按1→2→3→1的顺序每次移动1步,反向移动为按1→3→2→1的顺序每次移动1步。
已知正向移动n步的计算公式为(start_pos + n) % 3,需注意若模3结果为0,对应塔编号为3。

通用反向移动公式

1. 基础公式

直接对应反向移动的逻辑,公式如下:
(start_pos - n) % 3

结果说明:若计算结果为0,最终位置为3;其余结果直接对应塔编号。
示例验证:起始位置B(编号2)反向移动7次,代入得(2-7) %3 = (-5)%3 =1,对应A,和题示示例结果一致。

2. 全编程语言兼容版(无需额外判断0值)

针对部分编程语言模负数会返回负结果的问题,可使用调整后的公式,计算结果直接返回1~3的有效塔编号:
(start_pos - 1 - n % 3 + 3) % 3 + 1

验证示例1:起始位置1(A)反向移动1次:(1-1 -1%3 +3)%3 +1 = (0-1+3)%3 +1 = 2%3 +1 = 3,对应C,符合预期。
验证示例2:起始位置3(C)反向移动2次:(3-1 -2%3 +3)%3 +1 = (2-2+3)%3 +1 = 3%3 +1 = 1,对应A,符合预期。


等价推导思路

反向移动n次等价于正向移动3 - n%3次,也可基于正向公式改写得到反向计算逻辑,结果和上述公式一致。

内容的提问来源于stack exchange,提问作者TYL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:27:02