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

CLRS中Miller-Rabin的WITNESS伪代码是否可简化?求反例验证

疑问:Miller-Rabin的WITNESS函数是否能简化为仅判断初始幂值?

我正在研读*《算法导论》(CLRS,第3版)*第969页中Miller-Rabin素性测试的辅助函数WITNESS,原书给出的伪代码如下:

WITNESS(a, n)
    let t and u be such that t >= 1, u is odd, and n-1 = 2^t u
    x_0 = MODULAR-EXPONENTIATION(a, u, n)
    for i = 1 to t
        x_i = x_{i-1}^2 mod n
        if x_i == 1 and x_{i-1} != 1 and x_{i-1} != n-1
            return TRUE
    if x_t != 1
        return TRUE
    return FALSE

已知MODULAR-EXPONENTIATION的返回值范围是[0, n-1],我个人认为上述伪代码完全等价于下面这个简化版本:

WITNESS(a, n)
    let t and u be such that t >= 1, u is odd, and n-1 = 2^t u
    x_0 = MODULAR-EXPONENTIATION(a, u, n)
    if x_0 == 1 or x_0 == n-1
        return FALSE
    else
        return TRUE

但这显然有问题——毕竟Miller-Rabin的核心逻辑应该依赖循环中的多次平方检查才对,所以我的等价推论肯定是错的。有没有简单的反例可以证明我的结论不成立?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:00:45