Excel 在对数字进行非常大的幂运算时返回错误

Excel 在对数字进行非常大的幂运算时返回错误

我正在尝试模运算和大数(越来越多地涉及密码学)。

我正在尝试解决 3027^253 mod 3233 之类的问题,但 Excel 返回了错误。

我想把这个问题分解成

(1000^253 模 3233)+(1000^253 模 3233)+(1000^253 模 3233)+(27^253 模 3233)

但这也行不通。我不能得到比

(10^253 mod 3233) 所以这并没有什么帮助。

Excel 很可能无法处理此类问题。如果是这样,那什么可以呢?

如果这很重要的话,我的编程水平较低 - 不错的 javascript 和基本的 PHP(可以与数据库交互)。

编辑:

Javascript 也存在错误:

Math.pow(1000, 253); 返回无穷大。Math.pow(100, 253); 也是如此

答案1

以下是一些基于常见算法的代码:

Public Function xMod(baseV As Long, pwr As Long, modV As Long) As Long
    Dim i As Long

    xMod = 1
    For i = 1 To pwr
        xMod = xMod * baseV
        xMod = xMod - Int(xMod / modV) * modV
    Next i
End Function

但是,遗憾的是,我不知道它是否有效!.................这是您所期望的吗?:

在此处输入图片描述

(它与 Wolfram Widget 一致)

答案2

一个解决方案是使用 Wolfram | Alpha 的模数小部件

它速度很快,可以轻松处理这些问题。

相关内容