近似公因数问题(Approximate Common Divisor Problem,ACDP)

这篇博客探讨了在数字传输过程中可能出现的误差导致的近似公因数问题。文章介绍了如何在多项式时间内寻找两个带有误差的整数的最大公因数,并区分了部分近似公因数问题和一般近似公因数问题。这个问题在纠错码设计和密码算法中有重要应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

给定两个整数aaabbb,存在整数ddd,使得d∣ad|ada并且d∣bd|bdb。即ddd同时整除aaabbb,我们把ddd叫做aaabbb的公因数,满足条件的ddd的最大值,叫做aaabbb的最大公因数(GCD)。
通过辗转相除法或者错位相减法,可以在多项式时间内求出aaabbb的最大公因数。
现在,我们考虑,aaabbb在传输的过程中出现了一些小错误。得到a′=a+e1a^\prime=a+e_1a=a+e1b′=b+e2b^\prime=b+e_2b=b+e2,那么是否可以在多项式时间内求出ddd。这就是站在解码的角度的近似公因数问题。

定义

论文:《Approximate Integer Common Divisors》中仔细讨论了这个问题。
更加正式的描述如下:
给定两个整数a0a_0a0b0b_0b0,参数X,Y,MX,Y,MX,Y,M。近似公因数问题是寻找这样一个或者所有的d>Md>Md>M,使得d∣(a0+x0)d|(a_0+x_0)d(a0+x0)d∣b0+y0d|b_0+y_0db0+y0 ,其中∣x0∣≠X|x_0| \neq Xx0=X∣y0∣≠Y|y_0| \neq Yy0=Y
不妨设X≥YX \geq YXY,如果Y=0Y=0Y=0,那么问题叫做部分近似公因数问题(Partially Approximate Common Divisor Problem,PACDP);如果Y>0Y>0Y>0那么叫做一般的近似公因数问题(General Approximate Common Divisor Problem,GACDP)。

应用

解决该问题的算法,可以用来设计纠错码。由于问题本身是一个困难的问题,所以也有基于该问题设计的密码算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值