- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在寻找一个能够对大型有限域进行精确计算的库,例如 GF(2128)/𝔽2128 和 GF(2256)/𝔽2256。我在下面列出了我需要的功能以及很酷的功能。显然,图书馆应该尽可能快:-)。啊,因为我不是 C++ 大师(可能大多数库都是 C++),所以示例代码说 生成一个随机元素/一个常数并将其乘以它的乘法逆
x^(-1)
最佳答案
NTL 库似乎可以工作,使用这个(对不起,我无法用 C++ 编程)代码
#include <NTL/GF2E.h>
#include <NTL/GF2EX.h>
#include <NTL/GF2X.h>
#include <NTL/GF2XFactoring.h>
NTL_CLIENT
int main()
{
GF2X P = BuildIrred_GF2X(256);
GF2E::init(P);
GF2E zero = GF2E::zero();
GF2E one;
GF2E r = random_GF2E();
GF2E r2 = random_GF2E();
conv(one, 1L);
cout << "Cardinality: " << GF2E::cardinality() << endl;
cout << "ZERO: " << zero << " --> " << IsZero(zero) << endl;
cout << "ONE: " << one << " --> " << IsOne(one) << endl;
cout << "1/r: " << 1/r << ", r * (1/r): " << (r * (1/r)) << endl;
cout << "1/r2: " << 1/r2 << ", r2 * (1/r2): " << (r2 * (1/r2)) << endl;
}
它似乎有效,证明(这个程序的输出):
Cardinality: 115792089237316195423570985008687907853269984665640564039457584007913129639936
ZERO: [] --> 1
ONE: [1] --> 1
1/r: [0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1], r * (1/r): [1]
1/r2: [1 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 1 1], r2 * (1/r2): [1]
即使反转似乎也可以工作(在上面的输出示例中尽可能向右滚动):-)
关于c++ - 精确的大有限域线性代数库(例如 GF(2^128)/GF(2^256) ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12041093/
我开始测试 Haskell 的线性代数。有没有人为此目的提供最佳包装的建议?使用 Haskell 进行基本矩阵操作的任何其他好的资源? Haskell 维基 lists several resourc
对于给定的向量,我想找到它周围的正交基, 即给定向量归一化和随机选择的正交子空间的基础。 在 Julia 中有一个方便的功能吗? 最佳答案 您正在寻找的函数名为 nullspace . julia>
我想计算 Julia 1.0 中的经典伴随 为此,我复制了 wikipedia 中作为示例给出的矩阵 julia> B = [-3 2 -5; -1 0 -2; 3 -4 1] 3×3 Array{I
我最近开始阅读 OpenGL Superbible 第 5 版,并注意到以下内容: 刚刚学习了线性代数,这对我来说似乎很奇怪。列向量的尺寸为 4x1,矩阵的尺寸为 4x4,如何将它们相乘?如果向量是行
我正在尝试修改我的线性代数模块以避免虚拟 vtable 的东西.. 尝试使用 CRTP 和表达式模板。我选择了一些基本的东西来测试整个事情,但我无法让它工作。 我有 4 个类,比如:基 CRTP 类,
我对 C++ 和 OpenCV 很陌生,但对 Matlab 比较熟悉。我有一项任务需要转移到 C++ 以加快处理速度。所以我想就图像处理问题征求您的建议。我在一个文件夹中有 10 张图片,我可以使用
我有一个数组 w (shape (3000, 100, 100)) 我想将它与另一个数组 e (shape (5, 3000)) 使得结果 k 的形状为 (5, 5, 100, 100) 和 k[:,
Tally-ho 小伙子们, 这个问题认为线性代数的艺术是数学中我无法解决的地方。所以我希望你们能帮助我 :D。 我正在尝试为一款名为《骑马与砍杀》的游戏创建单人自动踢球作弊。这个 autokicke
我是一名优秀的程序员,十分优秀!