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

PHP模运算生成函数的逆函数实现技术求助

实现模乘法函数的逆函数

你的原函数是模乘法运算:

$result = ($number * 683567) % 1000000;

要实现逆函数,核心是找到683567在模1000000下的乘法逆元——即一个整数$inv,满足 (683567 * $inv) % 1000000 = 1。

由于683567和1000000互质(最大公约数为1),逆元存在。通过扩展欧几里得算法可计算出这个逆元是317933。

逆函数的逻辑很简单:用输入的结果值乘以逆元,再取模1000000,就能得到原始输入值。

PHP实现代码

function getOriginalNumber($result) {
    $modulus = 1000000;
    $multiplierInv = 317933; // 683567在模1000000下的逆元
    return ($result * $multiplierInv) % $modulus;
}

验证示例

// 测试用例1
echo getOriginalNumber(683567); // 输出: 1

// 测试用例2
echo getOriginalNumber(367134); // 输出: 2

// 测试用例3
echo getOriginalNumber(78741); // 输出: 123

内容的提问来源于stack exchange,提问作者Deniz Şafak

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 12:54:19