数学教育自然科普

你有任意张50块,我有任意张20块,咱俩一共能有多少钱?

2020-07-09  本文已影响0人  理理你的数学

01 数论的几个表达以及相对应的性质

01 整除

a=bq,其中b不等于零,我们就说b整除a,记作b|a,此时我们把b叫做a的因数,因此他有如下性质:

1.如果b|a, c|b,则c|a
2.如果b|a,则cb|ca
3.如果c|a,c|b,则对任意的整数m,n
c|ma+nb

4.如果b|a且,a\neq0,则|b|\le|a|
5.如果cb|ca,则b|a
6.如果b|a,a\neq0,则\frac{a}{b}|a

02 最大公因数

a_1,a_2,\ldots,a_n是n个不全为零的整数。若整数d是他们之中每一个数的因数,那么d就叫做a_1,a_2,\ldots,a_n的一个公因数。这时,他们的公因数只有有限个。整数a_1,a_2,\ldots,a_n的公因数中最大的一个叫做最大公因数,记作(a_1,\ldots,a_n),若(a_1,\ldots,a_n)=1,我们说a_1,a_2,\ldots,a_n互素

02 啥是裴蜀定理?(数学版)

在数论中,裴蜀定理是一个关于最大公约数(或最大公约式)的定理,它形式上表示着一个判断整数系方程有无整数解的方法。 具体定理内容如下:

对于整数a,b,c,二元一次方程ax+by=c有整数解的充分必要条件是(a,b)|c

证:首先证明充分性,若此方程有解,则可知(a,b)|a,(a,b)|b,因此可知(a,b)|c
其次证明必要性,设d=(a,b),且设a=k_1d,b=k_2d,c=k_3d,因此原方程可化为k_1x+k_2y=k_3,又因为k_1x+k_2y=k_3\Leftrightarrow k_2y|k_1x-k_3\Leftrightarrow k_1x\equiv k_3(mod\ k_2),并且(k_1,k_2)=1,因此当x遍历k_2的一个完全剩余系时,k_1x遍历k_2的一个完全剩余系。证毕。

02* 啥是裴蜀定理?(人话版)

相信不少同学直接跳到了这个位置(裴蜀内心OS:证了半天都不看的嘛 我哭了呜呜呜)。

假设你有任意张50块钱,我有任意张20块钱,咱们一共能有多少钱呢?


裴蜀定理一方面告诉我们只要是10的倍数的钱咱都能有,就比如说10块钱,我欠人家两张20你一张50帮我还咱一共就有10块钱。

另一方面告诉我们不是10的倍数咱们怎么都凑不出来,就像咱俩无论如何变不出来一张5块钱。

总结来说,裴蜀定理告诉我们只要未知项系数的最大公因数是常数项的因数(gcd(50,20)|10),这个方程就是有解的。

03 最大公因数的求法

对于正整数p,q来说,如何求他们的最大公因数呢?

最直接的方法可能是从1一直试到p,q之间最小的数,最大的能同时整除p,q的数,就是pq的最大公因数。

这种方法最大的弊端就是当pq都很大的时候,计算量会很大,就比如说让你计算50块和20块的最大公因数很简单,但是让你计算银行账户里的数字和世界人口总数的最大公因数可能就会很麻烦。

(然鹅我就不一样了,世界人口有多少,这个最大公因数就是多少)


04 辗转相除法(数学版)

要证明辗转相除法的可行性,我们首先需要证明另一个较为简单的定理。

定理 1 设a,b,d是任意三个不全为零的整数,且a-kb=d
其中k是整数,则(a,b)=(b,d)

证:因为(a,b)|a, (a,b)|b,所以有(a,b)|d,因而(a,b)\le(b,d).同法可证(b,d)\le(a,b),于是得到(a,b)=(b,d)

现在我们证明辗转相除法,辗转相除法本质上就是把两个数a,b做有限次形如a-kb=d(此处方便理解写法不正规)的带余除法。由此我们证明
定理2 若任给整数a>0,b>0,进行有限次带余除法,则(a,b)=d_{n-1}(一大波推导来袭)
证:a-k_1b=d_1,k_1b<a<(k_1+1)b (a,b)=(b,d_1) b-k_2d_1=d_2,k_2 d_1<b<(k_2+1)d_1 (b,d_1)=(d_1,d_2) ... d_{n-3}-k_{n-1}d_{n-2}=d_{n-1}, k_{n-1}d_{n-2}<d_{n-3}<(k_{n-1}+1)d_{n-2} d_{n-2}-k_{n}d_{n-1}=0 (d_{n-2},d_{n-1})=(d_{n-1},0)
因此由等式的传递我们可以得知
(d_{n-1},0)=(a,b)
因此
d_{n-1}=(a,b)

04* 辗转相除法(人话版)

相信优秀的你又直接跳到了这个地方(裴蜀:呜...哦这个和我没关系你看吧)。

对这个定理最简单的理解就是如果一个数c是p的因数也是q的因数,那么它也是p-q的因数。

因此,你每次都可以拿一个较大的数和一个较小的数,让他们作差,紧接着把差和较小的数拿一个当作较大的数,另一个当较小的数,接着重复这个操作。

可以想象的是,最后一定能得到一个数d和一个零,而因为在这个过程中最大公因数都是这个最大的数和最小的数的因数,因此,最后的这一个数d就是最大公因数。

举个例子 比如求50和20的最大公因数,我们可以先算50-2*20=10 然后这个时候两个数变成了20和10,我们再算20-2*10=0,此时两个数变成了10和0,因为一个数是0,因此更大的那个数10就是50和20的最大公因数。

05 辗转相除法应用(计算机必备)

也许你会想,这减来减去的计算量也没少多少啊。但是这个方法最显著的特点就是从始至终就两个数,较大的数和较小的数,并且操作是不同重复的,因此尤其适合编程应用。具体变成内容如下:


当然也可以用一些数去验证一下:



本篇内容就到这里啦,如果还想看更多有趣的内容欢迎关注我的公众号“理理 你的数学”哦!

上一篇下一篇

猜你喜欢

热点阅读