You need to enable JavaScript to run this app. PHP中如何将[24,0]范围整数映射为[10,0]区间整数
优惠活动
大模型
产品
解决方案
定价
更多

PHP中如何将[24,0]范围整数映射为[10,0]区间整数

区间映射核心实现逻辑

线性映射的本质是对齐两个区间的相对位置:原输入的满量程值(24)对应目标输出的满量程值(10),原输入的最小值(0)对应目标输出的最小值(0),两个区间方向一致,无需做反转处理。
计算逻辑拆解:

  • 计算缩放比例:目标区间总长度 / 原区间总长度 = (10 - 0) / (24 - 0) = 5/12
  • 原输入值乘以缩放比例,即可得到对应目标区间的浮点数值
  • 对浮点结果做取整处理,同时做边界校验,避免计算偏差、异常输入导致的结果溢出
PHP 可落地实现代码

代码包含输入边界截断、线性计算、取整、输出边界校验全流程,可直接复用:

function rangeMap(int $originNum): int {
    // 原输入边界截断:保证输入不会超出0-24的约定范围
    $safeOrigin = max(0, min(24, $originNum));
    
    // 线性映射计算
    $scaled = $safeOrigin * (10 / 24);
    
    // 取整:可根据需求替换为floor()向下取整、ceil()向上取整
    $intResult = (int)round($scaled);
    
    // 输出边界截断:消除浮点计算带来的微小偏差,保证输出落在0-10区间
    return max(0, min(10, $intResult));
}
常见场景映射效果参考

基于四舍五入取整的典型测试结果:

  • 原输入0 → 输出0
  • 原输入12 → 输出5
  • 原输入24 → 输出10
  • 原输入3 → 输出1
  • 原输入6 → 输出3

注:如果需要调整映射的取整规则,仅需替换取整函数即可,核心缩放逻辑无需改动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 06:45:11