Matlab中无工具箱的大数模

Matlab中无工具箱的大数模,matlab,mod,modular-arithmetic,Matlab,Mod,Modular Arithmetic,我正在将一些Python代码移植到Matlab,在Matlab中进行mod计算时遇到了一个问题,导致返回的是NaN,而不是Python那样的正确值 Python中的代码是p=pow(8687205885788687615836942883)与Matlab中的代码相同 a = 8687205886^5788687615 b = 8369428283 m = mod(a,b) 除了默认的工具箱外,我没有任何其他工具箱的权限,因此使用符号数学工具箱或其他选择都不是一个选项 如何在Matlab中进行

我正在将一些Python代码移植到Matlab,在Matlab中进行mod计算时遇到了一个问题,导致返回的是NaN,而不是Python那样的正确值

Python中的代码是p=pow(8687205885788687615836942883)与Matlab中的代码相同

a = 8687205886^5788687615 
b = 8369428283
m = mod(a,b)
除了默认的工具箱外,我没有任何其他工具箱的权限,因此使用符号数学工具箱或其他选择都不是一个选项

如何在Matlab中进行这样的计算


谢谢

缺少用于更高精度数字的工具箱,可能是一种选择:

p = py.pow(int64(8687205886),int64(5788687615),int64(8369428283))

p = 

  Python long with properties:

    denominator: [1×1 py.long]
           imag: [1×1 py.long]
      numerator: [1×1 py.long]
           real: [1×1 py.long]

    539591274

缺少更高精度数字所需的工具箱,可能是一种选择:

p = py.pow(int64(8687205886),int64(5788687615),int64(8369428283))

p = 

  Python long with properties:

    denominator: [1×1 py.long]
           imag: [1×1 py.long]
      numerator: [1×1 py.long]
           real: [1×1 py.long]

    539591274

mod
调用不是问题,
a
已经在那里了。你可以在文件交换上寻找做大整数计算的工具,我想你会找到一些。这里:-作者很受尊敬,我希望这个工具是正确的,而且写得很好。你认为转换为int 64可以工作吗
8687205886^5788687615
是一个非常大的数字,不能放入64位。不知道你需要多少,也许几千。使用内置数字表示法无法执行此操作。您需要使用大整数算法。你可以自己写,也可以用已经写好的。除非你想熟悉这种算法,否则不要自己写。重用现有代码通常是最好的方法。调用
mod
不是问题,
a
已经存在
Inf
。你可以在文件交换上寻找做大整数计算的工具,我想你会找到一些。这里:-作者很受尊敬,我希望这个工具是正确的,而且写得很好。你认为转换为int 64可以工作吗
8687205886^5788687615
是一个非常大的数字,不能放入64位。不知道你需要多少,也许几千。使用内置数字表示法无法执行此操作。您需要使用大整数算法。你可以自己写,也可以用已经写好的。除非你想熟悉这种算法,否则不要自己写。重用现有代码通常是最好的方法。