类欧几里得算法学习

本文介绍了类欧几里得算法,通过详细解析如何求解f(a,b,c,n)、g(a,b,c,n)和h(a,b,c,n)的值,展示了算法与求gcd的相似性,并给出了不同条件下的计算公式,揭示了其在数学计算中的高效性。" 9314681,1487785,Lua数据读写与表操作,"['lua', 'cocos2d-x']
摘要由CSDN通过智能技术生成

几个常用等式

  • a ≤ ⌊ b c ⌋ ⇔ a c ≤ b a\le\left\lfloor\frac bc\right\rfloor\Leftrightarrow ac\le b acbacb
  • a &lt; ⌈ b c ⌉ ⇔ a c &lt; b a&lt;\left\lceil\frac bc\right\rceil\Leftrightarrow ac&lt;b a<cbac<b
  • a ≥ ⌈ b c ⌉ ⇔ a c ≥ b a\ge\left\lceil\frac bc\right\rceil\Leftrightarrow ac\ge b acbacb
  • a &gt; ⌊ b c ⌋ ⇔ a c &gt; b a&gt;\left\lfloor\frac bc\right\rfloor\Leftrightarrow ac&gt;b a>cbac>b
  • ⌊ b c ⌋ ⇔ ⌊ b + c − 1 c ⌋ \left\lfloor\frac bc\right\rfloor\Leftrightarrow \left\lfloor\frac {b+c-1}c\right\rfloor cbcb+c1
  • ⌊ b c ⌋ ⇔ ⌈ b − c + 1 c ⌉ \left\lfloor\frac bc\right\rfloor\Leftrightarrow \left\lceil\frac {b-c+1}c\right\rceil cbcbc+1

类欧几里得

介绍

可以用来快速求出以下几个式子的值:

  • f ( a , b , c , n ) = ∑ i = 0 n ⌊ a i + b c ⌋ f(a,b,c,n)=\sum_{i=0}^n\left\lfloor\frac{ai+b}c\right\rfloor f(a,b,c,n)=i=0ncai+b
  • g ( a , b , c , n ) = ∑ i = 0 n i ⌊ a i + b c ⌋ g(a,b,c,n)=\sum_{i=0}^ni\left\lfloor\frac{ai+b}c\right\rfloor g(a,b,c,n)=i=0nicai+b
  • h ( a , b , c , n ) = ∑ i = 0 n ⌊ a i + b c ⌋ 2 h(a,b,c,n)=\sum_{i=0}^n\left\lfloor\frac{ai+b}c\right\rfloor^2 h(a,b,c,n)=i=0ncai+b2

由于求值的过程跟求 g c d gcd gcd的欧几里得算法类似因此叫做类欧几里得。

求f

  1. a ≥ c a\ge c ac o r or or b ≥ c b\ge c bc
    ⌊ a i + b c ⌋ \left\lfloor\frac{ai+b}c\right\rfloor cai+b拆开变成 ⌊ ( a % c ) i + b % c c ⌋ + ⌊
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值