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

求整数范围循环镜像映射的简洁高效实现算法

循环镜像范围约束算法实现

核心逻辑

该镜像映射的周期为 2 * n,单个周期内的映射可以通过余数判定直接计算,无需分段复杂逻辑:

  1. 计算完整周期长度 cycle = 2 * n
  2. 将输入整数 i 映射到单个周期区间 [0, cycle) 内,得到余数 r
  3. 最终结果可通过无分支公式直接计算:n - abs(n - r),等价于分支逻辑:若 r ≤ n 返回 r,否则返回 2 * n - r

算法优势

  • 时间复杂度为常数级O(1),仅需基础算术运算,执行效率极高
  • 天然支持正负整数输入,无需额外分支处理负数场景
  • 边界值适配完美,完全符合给定的映射规则

代码实现

Python 版本

Python 内置取模运算默认返回非负余数,无需额外处理负数输入:

def mirror(i: int, n: int) -> int:
    cycle = 2 * n
    r = i % cycle
    return n - abs(n - r)

C/Java 版本

针对负数取模会返回负余数的语言,补充余数校正逻辑:

int mirror(int i, int n) {
    int cycle = 2 * n;
    int r = i % cycle;
    // 校正负余数到[0, cycle)区间
    r = r < 0 ? r + cycle : r;
    return n - abs(n - r);
}

验证示例(n=5)

输入i输出j计算过程
-22cycle=10, r=8 → 5 - abs(5-8) = 2
-11cycle=10, r=9 → 5 - abs(5-9) = 1
005 - 5 = 0
555 - 0 = 5
64r=6 → 5 - abs(5-6) = 4
100r=0 → 5 - 5 = 0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:06:05