大数取模运算Barrett reduction

本文介绍了Barrett约减算法,一种优化单模数多约减操作的方法,通过将除法转换为移位、乘法和加减,减少计算时间。算法步骤包括选择基b、k,预计算μ,构造q^,以及对z进行特定的减法处理。文章还涉及正确性的数学推导。

Barrett reduction

约减概述

约减的定义(reduction):z(modp)z \pmod pz(modp)
优化约减的目的:取模操作的底层实现往往使用到的是除法,而除法操作往往是较为耗时的,因此需要把除法操作替换为不那么费时的其他操作

Barrett 约减概述

单模数多约减:多个约减操作,其模数ppp是固定的,而zzz不同。
针对单模数多约减的情况,可以使用Barrett约减来进行优化操作。
Barrett约减算法的整体流程可以概括如下:
step 1.根据p,选定b和k,其中b代表的是基,满足b≥3b \ge 3b3,k=⌊logbp⌋+1k = \lfloor log_b^p \rfloor+1k=logbp+1,0≤z0 \le z0z<b2k\lt b^{2k}<b2k
step 2.预计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值