【发布时间】:2016-08-30 09:52:20
【问题描述】:
我有 2 个大数字,一个大约 4096 位,另一个 2048 位,存储在一个结构中:
typedef uint32_t word;
typedef struct BigNumber {
word words[128];
} BigNumber;
我必须对这些取模,我能想到的唯一方法是多次减去,但这需要一些时间。
有人知道更好的方法吗?
【问题讨论】:
-
不幸的是我不能使用 MGP 库,而且他们的代码对我来说并不是真正可重用的
-
它是关于任意数模还是具有一些幂 2 数的模块(将高位设置为零)?
-
@grek40 任意,除了长度没有特殊规定
-
@ZangMingJie:不是真正的复制品。这是一个 128*32 = 4096 位整数。但同样的原则确实适用。
标签: c math biginteger modulo