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

如何实现适配任意上下界的循环值域映射函数?

泛化任意区间的循环映射函数

原函数仅适用于中心在0的对称区间,当区间平移(如[-540, -180])时,公式逻辑不再适配。以下是适配任意最小值min_和最大值max_的通用循环映射函数:

def cyclic_map(value, min_, max_):
    range_ = max_ - min_
    # 先将值偏移到以min_为起点的坐标系,取模后再偏移回原区间
    return (value - min_) % range_ + min_

验证示例

  1. 原对称区间测试([-180, 180]):
print(cyclic_map(200, -180, 180))  # 输出 -160,与原函数结果一致
print(cyclic_map(200 + 360, -180, 180))  # 输出 -160,符合循环预期
  1. 平移区间测试([-540, -180]):
print(cyclic_map(200, -180-360, 180-360))  # 输出 -520,与预期一致

原理说明

  • 先通过value - min_将输入值转换为以区间最小值为起点的相对偏移量
  • 对区间长度range_取模,得到0到range_范围内的循环偏移量
  • 最后加回min_,将偏移量映射回目标区间的绝对数值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 23:24:47