Algorithm 如何计算(1+;a%m+;a^2%m…;+;a^n%m)之和

Algorithm 如何计算(1+;a%m+;a^2%m…;+;a^n%m)之和,algorithm,Algorithm,如何计算(1+a%m+a^2%m……+a^n%m)其中 m=k!,1sum=0; i=0; 而 换句话说,您的表达式可以计算为: (1 - a^(n+1))/(1-a) % m 或者以纲领形式, fmod((1-pow(a,n+1))/(1-a), m) 这个问题似乎离题了,因为它是一个数学问题。在a for(i=1;iHint(a+b)%m=(a%m+b%m)%m这样你可以减少求和。如果你真的需要计算每个求和。我假设,a^n mod m对于m=k!,1@EvgenyKluev!变得周期性相

如何计算
(1+a%m+a^2%m……+a^n%m)
其中

m=k!,1
sum=0;
i=0;
而
换句话说,您的表达式可以计算为:

(1 - a^(n+1))/(1-a) % m
或者以纲领形式,

fmod((1-pow(a,n+1))/(1-a), m)

这个问题似乎离题了,因为它是一个数学问题。在a for(i=1;iHint
(a+b)%m=(a%m+b%m)%m
这样你可以减少求和。如果你真的需要计算每个求和。我假设,
a^n mod m
对于
m=k!,1@EvgenyKluev!变得周期性相对较快-不确定。在它的原始形式中,整个问题被问到
mod m
,是的。在这种形式中(请注意,对于整个总和没有
mod m
),这并没有真正的帮助。我认为需要有一个模式,或者
mod m
在结尾处缺失。我假设
m
是阶乘这一事实也应该在解决方案中使用。(+1)太棒了。你能想出一个原因吗
m
被限制为阶乘?如果
1-a
没有一个乘法逆模
m
?使用bignums对于如此大的
n
来说是没有效率的。这很好,但不能解决问题。围绕
a=1
会不会有数字问题?是的,是的。但它可以作为单独的情况计算(我可能会补充说,很简单)对不起,我说的“大约1”是指“接近1”而不是“在1”(假设
a
是一个浮点数)。
(1 - a^(n+1))/(1-a) % m
fmod((1-pow(a,n+1))/(1-a), m)