最新要闻
- 近期,四大生肖事业连走上坡路,收入节节高升,财运亨通
- 把充电速度带入“5G时代” 理想纯电车型搭载5C电池:不到十分钟续航400km
- iPad mini唯一对手!新款联想拯救者Y700性能确认:搭载骁龙8+
- 李玟演唱《战歌》竟成绝唱 《斗罗大陆2》动画片头缅怀
- 都不买英伟达难受了:RTX 4080大降价 首次跌破1000美元!降到多少你会买?
- 我国新能源汽车达1620万辆 仅汽车保有量1/20 增长潜力巨大
- 男生考上985研究生辞掉车企上万月薪工作:父母很支持
- 比亚迪汉同门兄弟!海豹DM-i要来了:20万级大杀四方
- 续航90公里 宝马发布全新电动摩托车CE 02:最高车速95km/h
- 潼关县两馆一中心预计今年12月建成
- 打击乐器都有什么(打击乐器有哪些)
- 女子无人区遇乞食狼下车投喂 浑身瘦骨嶙峋感觉没危险:网友吐槽无知
- 夫妇中3亿7年后各自和新人住豪宅 网友唏嘘:果然有钱可以摧毁婚姻
- 上半年车市观察:几家欢喜几家愁,修炼内功迎“出海”
- 宝马隆重推出宝驴
- 杭州亚运会门票线上正式开售!购买教程出炉:官网、支付宝均可
手机
英国房地产因利率上升陷入困境 房价正以2011年来最快速度下跌
宁夏评选出上半年10名“宁夏好人” 95后消防员因敬业奉献入选
- 英国房地产因利率上升陷入困境 房价正以2011年来最快速度下跌
- 宁夏评选出上半年10名“宁夏好人” 95后消防员因敬业奉献入选
- 离婚时共同债务应该怎么处理?
- 华为云盘古大模型3.0正式发布
- 支持自动长文生成,WPS AI发布:基于大语言模型的智能办公助手
- 《街头霸王6》全球总销量突破200万份 卡普空再次为其玩家送上礼物
家电
[初等数论]欧几里得算法:最大公因数/公因式求解算法的数学证明与程序实现
[初等数论]欧几里得算法:最大公因数/公因式求解算法的数学证明与程序实现
对广大数学或计算机爱好者来说,找两个数的公因数向来是绕不过去的问题.本文将带大家用小学二年级的知识推出上述问题的最优算法:欧几里得算法,并展示其程序实现.以下是本文索引:
- 欧几里得算法
- 简洁的定义
- 快速的算法
- 严谨的证明
- 优雅的程序
- 斐蜀定理与更多推论
- 斐蜀定理
- 更多推论
欧几里得算法
欧几里得算法又叫辗转相除法,因最早被记载于欧几里得的《几何原本》中而得名.在我国,相同的算法则最早出现于东汉的《九章算术》中.该算法是目前已知最快的最大公因数求解算法.接下来,让我们开始深入了解该算法吧!
【资料图】
简洁的定义
本节内容的定义范围均为自然数系,或者用集合论的写法:\(\in \mathbb{N}\)(特别注意的是,这里 \(0 \subset \mathbb{N}\) ).
明确定义范围后,让我们先来定义除法:
显而易见,除法对自然数系并不封闭.也就是说,我们将任意两个自然数相除,结果却不一定是自然数.对于相除结果仍是自然数的,比如\(20 \div 5 = 4\),我们称之为整除,用数学语言表述为:
设 \(a,b \in \mathbb{N},b \neq 0\),若 \(\exists q \in \mathbb{N},a = bq\),则称 \(a\) 能被 \(b\) 整除,或 \(b\) 整除 \(a\),记作:\(b \mid a\);否则称 \(a\) 不能被 \(b\) 整除,或 \(b\) 不整除 \(a\),记作:\(b \nmid a\).
而对于不能整除的情况,我们可以将结果表示为两个自然数,这就是我们小学学的带余除法,例如\(21 \div 5 = 4 \cdots 1\).带余除法的数学定义如下:
设 \(a,b \in \mathbb{N},b \neq 0\),则\(\exists! q,r \in \mathbb{N}\),使得: \(a = bq + r,r < b\),上式也写作: \(a \div b = q \cdots r\),其中 \(q\) 称为 \(b\) 除 \(a\) (\(a\) 除以 \(b\)) 的不完全商 (简称商) ,\(r\) 是 \(b\) 除 \(a\) 的最小余数 (简称余数).
接下来我们来定义下因数、公因数和最大公因数:
设 \(a,b,c \in \mathbb{N}\),若 \(b \mid a\),则称 \(b\) 是 \(a\) 的因数,如:\(\{1,2,4\}\) 都是 \(4\) 的因数.若 \(c \mid a\) 且 \(c \mid b\),则称 \(c\) 是 \(a,b\) 的公因数,如:\(6,4\) 的公因数有 \(\{1,2\}\).\(a,b\) 的公因数中最大的称为 \(a,b\) 的最大公因数,记作:\(gcd(a,b)\),如:\(gcd(4,6) = 2\).
好了,定义到此结束,接下来让我们看看以上几个概念的基本性质吧:
\[1 \mid a,a \mid 0,a \mid a.\\a \mid b,b \mid c \implies a \mid c.\\a \mid b,a \mid c \implies a \mid (b \pm c). \\gcd(a,b) = gcd (b,a).\]以上几个性质留给读者自证.
最好的算法
准备工作完成后,让我们思考下如何计算 \(gcd(a,b)\).
我们不妨假设 \(a < b\) ,此时最简单的情况是 \(a \mid b\) 和 \(b \mid 0\),那么分别有 \(gcd(a,b) = a\) 和 \(gcd(0,b) = b\).
而当 \(a \nmid b\) 时,我们可以用带余除法:\(b \div a = q \cdots r (r < a)\),写成乘法就是 \(b = aq + r\) ,我们看到此处出现了四个自然数 \(a,b,q,r\),我们不妨带入些具体值看看能发现什么规律吧!
当 \(a = 12,b = 20\) 时,显然 \(gcd(a,b) = gcd(12,20) = 4\),由 \(b=aq+r\) 得:\(q=1,r=8\).当 \(a=18,b=30\) 时,显然 \(gcd(a,b)=gcd(18,30)=6\),由 \(b=aq+r\) 得:\(q=1,r=12\).
容易发现 \(4 \mid 8,6\mid 12\),归纳一下就是 \(gcd(a,b) \mid r\).
进一步观察 \(a\) 和 \(r\),可以发现 \(gcd(12,8)=4=gcd(12,20),gcd(18,12)=6=gcd(18,30)\),归纳后得:\(gcd(a,b)=gcd(a,r)\).
先假设以上归纳结论是正确的,容易发现我们已经得到了将两个较大数的最大公因数求解问题转化为两个较小数的求解问题,而这样的操作是可以链式执行的,比如:\(gcd(18,30)=gcd(12,18)=gcd(6,12)=gcd(0,6)=6\).
将上述方法归纳一下就是欧几里得算法:
要求 \(gcd(a,b),0\[b=aq_1+r_1,r_1由于每次带余除法后其余数必然减少,因此有限次操作后必然存在 \(k > 0\) 使得 \(k_{r+1}>0\),此时所求的 \(gcd(a,b)=r_k\).
严谨的证明
要证欧几里得算法,先要证以下命题:
\[a+b \neq 0,a证明:\(设 d 是 a,b 的公因数,则:d \mid a,d \mid b\) \(\therefore d \mid aq,\) \(又 r=b-aq,\) \(\therefore d \mid r,\) \(\therefore a,b的公因数是a,r的公因数,\) \(同理:a,r的公因数是a,b的公因数,\) \(\therefore gcd(a,b)=gcd(a,r).\)\(\blacksquare\)由以上命题可得算法中的 \(k+1\) 个算式满足:
\[gcd(a,b)=gcd(a,r_1),\\gcd(a,r_1)=gcd(r_1,r_2),\\gcd(r_1,r_2)=gcd(r_2,r_3),\\\vdots\\gcd(r_{k-1},r_k)=gcd(r_k,r_{k+1}=0)=r_k,\\\]\(\therefore gcd(a,b)=r_k.\)
优雅的程序
让我们直接上伪代码吧:
input a, bif a > b: exchange a, bwhile r != 0: r = b mod a b = a a = routput b
接下来,让我们看一个 C 语言实现吧!
#include #include uint64_t gcd(uint64_t a, uint64_t b) { if (a > b) { a = a ^ b; b = a ^ b; a = a ^ b; } loop:; uint64_t r = b % a; b = a; a = r; if (r != 0) goto loop; return b;}
斐蜀定理与更多推论
本节内容仅作为补充,因此除斐蜀定理外其余推论证明留作练习.
另外,本节内容默认定义范围为整数系\(\mathbb{Z}\),上节内容的整数系延拓是显然的,在此不再赘述,请读者自行想象。
斐蜀定理
逆向观察欧几里得算法,我们可以看出:
\[r_{k-1}=r_kq_{k+1},\\r_{k-2}=r_{k-1}q_k+r_k=r_kq_{k+1}q_k+r_k,\\\vdots\]以此类推式中的每一个 \(r_i\) 都必然可以被 \(r_k\) 线性表示.
反过来,可以得到:
\[r_k=r_{k-2}-r_{k-1}q_k.\]也就是说,可以用 \(r_{k-1}\) 和 \(r_{k-2}\) 表示 \(r_k\),进一步地,我们可以得到:
\[r_k=sa+tb.\]其中 \(s\) 和 \(t\) 是由 \(r_i\) 和 \(q_i\) 线性表示的,而 \(r_i\) 和 \(q_i\) 都是整数,所以 \(s\) 和 \(t\) 都是整数.这就是著名的斐蜀定理:
\[\lvert a \rvert + \lvert b \rvert \neq 0 \implies \exists s, t \in \mathbb{Z},\\ gcd(a,b)=sa+tb.\]更多推论
以下内容请自证.
\[> d\mid a, a\mid b \implies d \mid gcd(a,b).\\a,b,c \in \mathbb{Z} \implies gcd(ac,bc) = gcd(a,b)\times \lvert c \rvert. \\d \in \mathbb{Z^+}: gcd(a,b)=d \iff gcd(\frac{a}{d},\frac{b}{d})=1.\\d \in \mathbb{Z^+}, a,b \in \mathbb{Z}, \lvert a \rvert + \lvert b \rvert \neq 0:gcd(a,b) = d\\ \iff \left( \begin{array}{ll} d \mid a, d \mid b; \\ c \in \mathbb{Z}, c\mid a, c\mid b \implies c \mid d. \end{array} \right.\\gcd(a,b)=1\implies gcd(a,bc)=gcd(a,c).\\gcd(a,b)=1,a\mid bc \implies a\mid c.\\gcd(a,b)=1,a\mid c, b \mid c\implies ab\mid c.\\gcd(a,b)=gcd(a,c)=1\implies gcd(a,bc)=1.\\a_1, a_2,\cdots,a_n \in \mathbb{Z}, \sum_{i=1}^{n}\lvert a_i \rvert\neq 0\\ \implies gcd(a_1,a_2,\cdots,a_n)=gcd((a_1,a_2),a_3,\cdots,a_n).\\a_1, a_2,\cdots,a_n \in \mathbb{Z}, \sum_{i=1}^{n}\lvert a_i \rvert\neq 0 ,\\ \exists s_1, s_2, \cdots, s_n \in \mathbb{Z},gcd(a_1, a_2, \cdots, a_n)=\sum_{i=1}^{n}a_is_i.\]关键词:
-
子/次模 (Submodular)、超模 (Supermodular)和模(Modular)函数
定义子模(Submodular)、超模(Supermodular)和模(Modular)函数是组合优
来源: [初等数论]欧几里得算法:最大公因数/公因式求解算法的数学证明与程序实现
子/次模 (Submodular)、超模 (Supermodular)和模(Modular)函数
近期,四大生肖事业连走上坡路,收入节节高升,财运亨通
把充电速度带入“5G时代” 理想纯电车型搭载5C电池:不到十分钟续航400km
iPad mini唯一对手!新款联想拯救者Y700性能确认:搭载骁龙8+
李玟演唱《战歌》竟成绝唱 《斗罗大陆2》动画片头缅怀
都不买英伟达难受了:RTX 4080大降价 首次跌破1000美元!降到多少你会买?
我国新能源汽车达1620万辆 仅汽车保有量1/20 增长潜力巨大
苏州新建元控股集团董事长叶晓敏:未来REITs板块的表现依然值得期待
男生考上985研究生辞掉车企上万月薪工作:父母很支持
比亚迪汉同门兄弟!海豹DM-i要来了:20万级大杀四方
续航90公里 宝马发布全新电动摩托车CE 02:最高车速95km/h
潼关县两馆一中心预计今年12月建成
P1223 排队接水
打击乐器都有什么(打击乐器有哪些)
女子无人区遇乞食狼下车投喂 浑身瘦骨嶙峋感觉没危险:网友吐槽无知
夫妇中3亿7年后各自和新人住豪宅 网友唏嘘:果然有钱可以摧毁婚姻
上半年车市观察:几家欢喜几家愁,修炼内功迎“出海”
宝马隆重推出宝驴
杭州亚运会门票线上正式开售!购买教程出炉:官网、支付宝均可
联合国秘书长希望黑海港口农产品外运协议得以维持
中泰证券:7、8月企业排产已提升至积极 H2空调有望在低预期之下延续高增
炒菜给孕妇吃,能放什么调味料?
玉泉区昭君路街道开展“人人讲安全 个个会应急”安全生产月活动
德国5月工业产出意外下降 经济复苏前景再蒙阴霾
崇明这里,垃圾分类有了“新助手”
恒玄科技:上半年公司下游各个领域的客户需求都有所恢复
广东高考录取日程公布!7月16日开始本科批次录取
美国5月份贸易逆差达690亿美元 自俄进口商品服务月增1.3倍
茀莱堡口腔医院地址|南京种植牙价格表2023
英国房地产因利率上升陷入困境 房价正以2011年来最快速度下跌
群众转移、房屋清淤、重建选址……重庆强降雨后做了这些事
23深投02、22润置09、22润置12今日成交额位居交易所信用(非金)债券榜前三
这一天,我们不敢忘,也不能忘!
靠“抄作业”上市成功,曾经的“福建首富”,也难逃“退市”?
京源环保:7月6日公司高管季献华减持公司股份合计112.63万股
大连“科技创新+试点应用”打造普惠金融新体验
全国首列!徐州地铁3号线二期电客车亮相!
【全球市场晚报】7月7日
追光丨冬奥场馆的夏日玩法,你不想来吗?
满口种植牙多少钱[南京专业种植牙医院]茀莱堡口腔医院怎么样
文县临江镇欧家坝村灌溉渠道维修工程中标公示
一级造价师管理考试及答案一级造价工程师管理考试时间
阿斯巴甜致癌争议不休 健康减糖还能吃什么?
马斯克回应垄断火箭发射市场:SpaceX的使命是让生命多行星化
老鹰乐队告别演出
拒绝恶性竞争!比亚迪、特斯拉、蔚小理等约定不打价格战
富豪为对抗衰老上午11点后断食:曾跟17岁儿子换血 45岁拥有28岁的皮肤
Redmi Note 12 Pro宣布降价500元:8+128GB到手价1399元
40℃以上!郑州市继续发布高温红色预警信号
深圳市尚艺品工艺品有限公司销售不合格产品案
维科技术(600152):7月7日北向资金减持95.08万股
红警ol如何退出联盟 红警OL退出联盟方法
甘肃武威一公司广告词含“送领导”被罚2万?官方:属实
民科 关于民科介绍
宁夏评选出上半年10名“宁夏好人” 95后消防员因敬业奉献入选
水冷炉壁 关于水冷炉壁介绍
“不知香臭”竟是罕见病 南漳姐妹花喜迎“好孕”
金融助力农村新业态发展
最高人民检察院依法对付忠伟决定逮捕
忻州:通过竣工验收!
《逆水寒手游》废村探秘宝箱开启玩法
中指研究院发布《2023上半年中国房地产市场总结&下半年趋势展望》
商汤灭夏有证据吗 商汤灭夏的时间
通行能力怎么计算 通行能力
Win11关闭自动播放功能操作教程
华为的宏图是成为下一个十年最伟大的软件公司?
董事长周炜涉嫌行贿被留置细节披露,卫宁健康曾卷入医院行贿案
FDL发布2023年H1全球食品饮料趋势,解析4大创新机会点
新中式越来越流行,这样穿太高级了!
高中化学一轮考点最全总结,高考化学石油的考点,高考化学关于煤的题型
给力!206.7亿元,多个项目成功签约!
化敌为友!利马转发与芒特冲突照:现在我们是朋友了
中国配电箱行业现状与发展趋势及前景预测2023
利欧股份:部分董事及高管拟减持不超0.09%股份
金石滩纳帕总部基地正式开园
大学生毕业医疗保险怎么交?如何办理?
学生保险怎么查询是哪个公司的?有一些什么好处?
平安养老险贵州分公司开展“7.8保险 宣传日健步行”活动
已发"红包"近千亿!上半年基金分红很阔绰,这家公司最豪
寒武纪-U领跌超7%,科创芯片ETF华安(588290)震荡回调,连续2日吸金合计超3亿元
左边给骨斗罗画个龙,右边画一道彩虹,这才是骨化神龙该有的样子
离婚时共同债务应该怎么处理?
华为云盘古大模型3.0正式发布
联想昭阳k26内存更换视频(联想昭阳k26)
支持自动长文生成,WPS AI发布:基于大语言模型的智能办公助手
山西基本养老服务清单发布
永新光学属于ai眼镜概念股吗?(2023/7/7)
5000份“妈妈的手作”将进驻亚运村 巾帼志愿者吹响服务保障亚运盛会的冲锋号
从797元跌至80元,股价重挫89%,昔日千亿巨头失宠?
不服“违约纠纷案”一审判决 银座股份旗下公司提起上诉
全国城市网媒总编辑走进无限极,实地探访湾区“智”造
王铁成:王羲之赋
被“智能锁”锁在外面3次,才明白不该买“5种锁”,用着太闹心
夏季流行骑行裤,时髦显身材
萨尔科重用自己的爱将,抛弃卡兰加,前者比后者强吗?
11代i5 11400h评测(11代i5 怎么样)
英力特股票 英力特股票代码
投诉湖南矗宸文化和湖南燊泽传媒
骨骼清奇 天赋异禀,一出场自带(骨骼清奇)