4

我正在使用 NTL 库来实现 RSA 密码分析。但是我经常遇到一些关于类型不匹配/不兼容的问题。

例如-

  1. 我需要RRn^((h-1.0)/(h*k-1.0)) 的类型值,其中 n 是 type ZZ,h 和 k 是 int。总指数是浮点数或双精度数。我试过 ^ , pow (仅适用于RR基数), power (仅适用于长指数)。我最终使 n,h,k 所有类型的 RR 都使用 pow,但这真的是这样做的方法吗?

  2. 如何做 (p(x))^k 其中 p(x) 是一些多项式?我不得不循环使用 mul 函数 k 次。还有如何初始化多项式?似乎它可以从标准输入中获取类似于 python 列表的东西,但我不能在程序中这样设置它。所以,

    ZZX p;
    p = [1 2 3]
    

    或者

    p = ZZX([1 2 3]) 
    

    不起作用。我不得不使用SetCoeff单独设置每个系数。

这些只是我现在记得的两个例子。我遇到了太多的不便。
Iirc,我们甚至不能将 ZZ 和 RR 相乘。

4

1 回答 1

1

我也搜索了一段时间。

  1. 不抱歉。没有内置的方法可以做到这一点。只有RR^long浮点数和整数的混合。我认为最简单的方法是将所有值转换为RR.
  2. 在这里,我也没有看到计算多项式幂的内置方法。但是有一种比k它自身乘以它更快的方法。看一下快速取幂
    要设置多项式,只有一个接一个地设置它的系数。但是您可以编写一个函数来从向量设置多项式中的所有系数。

NTL 是一个很好的高性能数学库,但是有很多事情使得使用这个库变得很困难......我认识的每个人都有数据类型的问题(正如你提到的,当你尝试乘以RRand时ZZ)。

于 2014-04-08T12:59:22.073 回答