Tag:

大数阶因数模数大素数

我需要计算一个大数的阶乘(<= 1.000.000),我需要结果模1000000007.我写了以下内容,但它在运行时生成错误(test.exe已停止工作)。 它仅适用于小数字。 long long unsigned modulo(long long unsigned nr){ return nr % 1000000007; } long long unsigned fact(long long unsigned nr){ if(nr)return modulo(nr * fact(nr – 1)); else return 1; } 更新1: long long unsigned fact(long long unsigned nr){ long long unsigned r = nr; while(–nr){ r = modulo(r * nr); } return r; […]

C:unsigned int上的模数运算符给出了意外的输出

#include main() { unsigned a = -20; unsigned b = 10; printf(“%d\n”, (a % b)); printf(“%d\n”, (-20 % 10)); } Output: 6 0 第二个printf打印预期值0,而第一个printf打印6.为什么这个意外输出带有无符号整数?

浮点模数运算

我正在尝试实施三角函数的范围缩减操作。 但相反,我认为对输入数据执行模数pi / 2操作可能会更好。 我想知道什么算法存在并且对于32位IEEE 754浮点的操作有效? 我必须在汇编中实现这个,所以fmod,除法,乘法等只有一条指令不可用。 我的处理器使用16位字,我实现了32位浮点加法,减法,乘法,除法,平方根,余弦和正弦。 我只需要范围缩减(模数)来输入余弦和正弦值。

模块化指数

在C / C ++中,如何计算(a^b)%m ,其中b不适合64位? 换句话说,有没有办法用b%m而不是b来计算上述值? 是否有任何算法可以在O(log(b))时间或O(log(b%m))时间内计算上述结果?