gpt4 book ai didi

c++ - 动力溢出

转载 作者:行者123 更新时间:2023-11-28 05:54:17 25 4
gpt4 key购买 nike

如果我正在计算 [x*(a^b)%mod+y%mod]%mod,如果我只使用 (a^b)%mod,将它与 x 相乘会得到正确答案吗?逐步计算 (x*(a^b))%mod 不是更好的主意吗?只是想向自己证明为什么不包括 x 有效。可以做什么?

最佳答案

试试这段代码。这个想法是为模加法、乘法和求幂引入新函数:

#define MOD 1000000007

inline int modadd(int a, int b) {
return ((long long)a + b) % MOD;
}

inline int modmult(int a, int b) {
return ((long long) a * b) % MOD;
}

inline unsigned modexp(unsigned base, unsigned exp)
{
unsigned result = 1;
while (exp > 0) {
if (exp & 1) result = ((unsigned long long)result * base) % MOD;
base = ((unsigned long long)base * base) % MOD;
exp >>= 1;
}
return result;
}

int main(void)
{
unsigned A[3] = {1, 2, 3};
unsigned r[3];
unsigned i, n = 3;

r[0] = 0;
r[1] = modmult(2, A[0]);
for (i = 1; i < n; i++) {
r[i+1] = modadd(r[i], modmult(A[i], modexp(2, i)));
}
}

关于c++ - 动力溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34556435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com