barrete约减

0 ≤ q < β / 2 , − β / 2 ≤ a < β / 2 0\le q<\beta/2,-\beta/2\le a<\beta/2 0q<β/2,β/2a<β/2
r ≡ a m o d    q , 0 ≤ r ≤ q r \equiv a\mod q,0\le r\le q ramodq,0rq
1. v ← ⌊ 2 ⌊ l o g ( q ) ⌋ − 1 β q ⌉ 2. t ← ⌊ a v 2 ⌊ l o g ( q ) ⌋ − 1 β ⌋ 3. t ← t q m o d    β 4. r ← a − t \begin{align} 1.&v \leftarrow \lfloor\frac{2^{\lfloor log(q)\rfloor-1}\beta}{q}\rceil\\ 2.&t \leftarrow \lfloor \frac{av}{2^{\lfloor log(q)\rfloor-1}\beta}\rfloor\\ 3.&t\leftarrow tq \mod \beta\\ 4.&r\leftarrow a-t \end{align} 1.2.3.4.vq2log(q)⌋1βt2log(q)⌋1βavttqmodβrat
证明方法,放缩法,主要利用四舍五入和向一舍入来进行适量缩放。
k = ⌊ l o g ( q ) ⌋ − 1 k=\lfloor log(q)\rfloor -1 k=log(q)⌋1.
则有
r ≡ a − ⌊ a v 2 k β ⌋ q < a − a v 2 k β q + q ( 减数变大至多不超 1 个 q ,直接加上一个 q ) ≤ a − a 2 k β 2 k β q q + a q 2 ⋅ 2 k β + q ( 当 v 舍弃时,顶多舍掉 0.5 个 a q / 2 k β ) < q + 1 \begin{align} r &\equiv a - \lfloor \frac{av}{2^k\beta}\rfloor q\\ &<a-\frac{av}{2^k\beta}q+q(减数变大至多不超1个q,直接加上一个q)\\ &\le a -\frac{a2^k\beta}{2^k\beta q}q+\frac{aq}{2\cdot 2^k\beta}+q(当v舍弃时,顶多舍掉0.5个aq/2^k\beta)\\ &<q+1 \end{align} ra2kβavq<a2kβavq+q(减数变大至多不超1q,直接加上一个q)a2kβqa2kβq+22kβaq+q(v舍弃时,顶多舍掉0.5aq/2kβ)<q+1
另有
r ≡ a − ⌊ a v 2 k β ⌋ ≥ a − a v 2 k β q ≥ a 2 k β − a v 2 k β ≥ a 2 k β − a ⌊ 2 k β / q ⌋ q 2 k β > − 1 \begin{align} r &\equiv a - \lfloor \frac{av}{2^k\beta}\rfloor\\ &\ge a-\frac{av}{2^k\beta}q\\ &\ge \frac{a2^k\beta-av}{2^k\beta}\\ &\ge \frac{a2^k\beta-a\lfloor2^k\beta/q\rfloor q}{2^k\beta}\\ &>-1 \end{align} ra2kβava2kβavq2kβa2kβav2kβa2kβa2kβ/qq>1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值