平方差公式练习题(平方差公式试题)

#头号周刊#

乘积差公式

本文给出一种新颖且要更加广义的乘积差公式,而我们早已熟知的平方差公式,只是其中的一个特例。

一、平方差公式

打开数学手册的第一页,就能够看到平方差公式,a^2 – b^2 =(a-b)(a+b)。这个公式的特点是,仅凭着两个乘积中的乘数a和b,就能够把两个乘积之间的差值,直接写成一个因数分解式;而整数的因数分解,恰恰是数论中最难的课题之一(现代密码学,就是建立在因数分解难解性的基础上发展起来的)。

因为每一个乘积都是由两个相等的整数相乘,所以称它们之间的差值为平方差公式。

二、乘积差公式

毕竟乘积中的乘数不相等是更加普遍的情况,那么当乘数不相等时,例如(1023*1025)-(513*515),在这样的两个乘积之间进行一次减法,无需过多的计算,仍然可以直接获得类似的因数分解式吗?老师没教过,数学手册上也没有,如果有需求怎么办?那就发明一个呗!

假设乘积A = aˇ1*aˇ2,允许其中的乘(因)数不一定相等,即aˇ2 ≥ aˇ1,可令乘数差Cˇa = aˇ2–aˇ1;设乘积B = bˇ1*bˇ2,同样允许bˇ2 ≥ bˇ1,乘数差Cˇb = bˇ2–bˇ1。当这样两个不一定是平方数的乘积相减时,可有乘积差公式,

A – B = aˇ1*aˇ2 – bˇ1*bˇ2 =(aˇ1- bˇ1)(aˇ2+ bˇ1)+(Cˇa- Cˇb)*bˇ1

这是一个更加广义的公式。当两个乘积之间乘数的差值相等时,即Cˇa = Cˇb,则简化为,

aˇ1*aˇ2 – bˇ1*bˇ2 =(aˇ1- bˇ1)(aˇ2+ bˇ1)

这就是说,即使乘积中的乘数并不相等,即aˇ1 ≠ aˇ2,bˇ1 ≠ bˇ2,但是只要乘数差是相等的,即,aˇ2–aˇ1 = bˇ2–bˇ1,两个乘积之差仍可被直接写成一个因数分解式。

如果aˇ1 = aˇ2,bˇ1 = bˇ2,就进一步简化成为我们已经熟知的平方差公式。

当bˇ1 ≠ bˇ2时,貌似在上述公式中,并没有体现出有乘数bˇ2什么事,实际上它已由乘数差Cˇb表达出来;从下述的公式证明过程看,没有问题。

显然,这种新型的乘积差公式比平方差公式要更加广义,用途当然也就要广泛得多。从它的基础性而言,如果今后哪本书中没有这个公式出现,那就只是本数学书而已,不能被称为数学手册了吧?

【证明】

如果Cˇa = Cˇb,那么,

(aˇ1- bˇ1)(aˇ2+ bˇ1)= aˇ1*aˇ2 + aˇ1*bˇ1 – bˇ1*aˇ2 – bˇ1*bˇ1

= aˇ1*aˇ2 – (aˇ2-aˇ1)*bˇ1 – bˇ1*bˇ1

= aˇ1*aˇ2 – Cˇa*bˇ1 – bˇ1*bˇ1

= aˇ1*aˇ2 – bˇ1*(Cˇa+bˇ1)

= aˇ1*aˇ2 – bˇ1*(Cˇb+bˇ1)

= aˇ1*aˇ2 – bˇ1*bˇ2

证明完毕。

还可以验证一下。已知1048575-264195 = 784380。假设事先能够获知它们的乘积形式,即,1048575 = 1023*1025,其中Cˇa = 1025-1023 = 2;264195 = 513*515,Cˇb = 515-513 = 2。因为Cˇa = Cˇb,就可以直接利用乘积差公式,同样得到,

1048575-264195 = 1023*1025–513*515 =(1023-513)(1025+513)+(2-2)*513 = 510*1538 = 784380

验证无误。

这样一来,无需经过复杂的因数分解计算,利用公式,两个乘积(合数)之间的差值,784380可以被直接分解成为510和1538两个因数。

当Cˇa ≠ Cˇb时,公式的证明方法类似(略去),但可验证一下。

已知1048575–729 = 1047846。若知1048575 = 1023*1025,乘数差Cˇa = 1025-1023 = 2;729 = 27*27,乘数差Cˇb = 27-27 = 0,这时两个乘数差并不相等,即,Cˇa – Cˇb = 2。如果利用乘积差公式,同样可有,

1048575–729 = 1023*1025-27*27 =(1023-27)(1025+27)+(2-0)*27 = 996*1052 + 54 = 1047846

当乘积的表达形式并不唯一时,例如在上式中可有,729 = 27*27 = 9*81 = 3*243,无论是选择哪种表达形式,例如选择乘数的差值,C = 81-9 = 72,乘积差公式仍然可以成立,

1048575–729 = 1023*1025-9*81 =(1023-9)(1025+9)+(2-72)*9 = 1014*1034 – 630 = 1047846

验证无误。

这就是说,即使同一个整数被写成不同的乘积形式,乘积差公式均可适用。

上述讨论内容属于初等代数的范围,既是基础也非常简单实用。下节的讨论就要略微复杂一些,但中学水平仍可大致理解;不过,不是从事数学工作的朋友不看也罢。

三、乘积差公式在计算最大公约数时的应用

1)最大公约数背景简介

目前常用的最大公约数算法有四种:质因数分解法、短除法、碾转相除法和更相减损法。但是,它们的计算复杂度都是指数时间等级。通俗点说就是,当两个数值变大时,求出它们最大公约数所需要的计算量,将以指数的形式急剧增长。

简单地介绍一下其中两种。质因数分解法,是先把A和B两个合数分别进行因数分解,然后就可以很容易地找出所有相同的因数。难点在于因数分解是目前数论中最难的课题之一。

更相减损法,是利用把A和B两个数相减以后,它们的差值仍将保留着与A和B之间相同公约数的原理,不断地进行减法计算,直到获取最大的公约数。例如,假设A = g*a,B = g*b,其中g是它们的最大公约数,记为gcd(A,B) = g;而它们的差值,A – B = g*(a-b),仍然会含有相同的公约数。难点在于需要多次进行减法计算,随着数值的增长,计算量太大。

别看最大公约数的概念非常简单,在小学五年级时就应该可以学到,但相应的算法却有上千年的历史了。在现代,它被认为是一个NP完全问题,因此属于当今最顶尖的数学难题(排在七大难题中的首位)。简单地说就是,这类问题存在着计算量比较小,复杂度为0(nk)的多项式时间等级算法吗?其中n代表A或B数值的位长;无论k的数值有多么大,只要是个常数即可,但是越小计算量就越少。这个问题看似简单其实极难,所以目前尚无定论。按照常理,有些难题现在没有好的解法,并不代表将来就一定没有。但不幸的是,对于所有的NP完全问题(包括最大公约数、布尔可满足性、汉密尔顿循环、推销员路径问题在内,大约有几千个;但是根据库克定理,只要其中任意一个获解,这一类问题全部都可以有解),绝大多数数学家都猜测:将来也不会有。即使是在剩下的少数人当中,大多也只是认为不一定没有;鲜见有人认为将来一定会有。博主认为:将来会有。

2)引进一种全新的整数分类方式

为什么首先需要引进一种全新的整数分类方式?

现有的最大公约数算法,大多需要在两个合数之间进行减法计算;但是在绝大多数情况下,我们却无法把合数立即用乘积的形式来表达。这就是说,在现有的数学体系下,即使是获得了这种崭新的乘积差公式,从理论上讲可以弥补平方差公式的局限性,但是它的应用仍然会受到极大的限制。这是一种矛盾:当两个合数相减时,因为合数的因数分解难题,无法写成两个乘积之间的相减式,影响了乘积差公式的直接应用;而一旦解决了合数的因数分解算法难题,那就又不需要应用乘积差公式来帮助解决最大公约数问题了。在后面的第4小节中将会看到,怎么样应用博主新创立出来的整除关系数的理论,来缓解现有数学体系下,因为整数的分类不够细化,而导致的这种矛盾及不足。

随着研究的深入,因为后续的更多成果属于原创性质,已无法给出洋跟班似的参考文献,不适应、或者说是无法在现有的科学刊物上,以八股文的形式顺利地发表(即使是已经发表的几篇论文,大多都被拒绝过,经过力争或者疏通后才被接纳)。而隐藏已经取得的成果,是对人类知识的不尊重。因此,博主有选择性地将部分成果在博客中发布,是非功过由世人去评说。

3)整除关系数的定义

这是一种新型的数字分类体系,认为任意一个整数,除了可以用有理数与无理数、实数与虚数、奇数与偶数,……,等常规的方法,对它们进行简单分类以外,还可以被进一步地细化描述;依照整除关系式,把它们归纳为不同类型的整除关系数。常识告诉我们,如果对于某种客观事物刻画得越细致,解决问题的方法通常就会越多越好。对于数字的分类也是如此。在这种具有原创性质的数字分类体系下,取得了一些有意义的成果(例如因数分解、秘钥破译等等),部分内容已经发表在“中国科技论文在线”上,详见“合数、费马数较大因数的快速筛选”、“余数的等差级数表达”、“快速模除求余算法”、“一种新型的因数分解算法”等论文。

只需进行一次除法,就可以很容易地得到任意一个整(合)数的整除关系式,据此,就可以对于所有的整数重新进行细化分类。

整除关系数定义:

假设除数aˇ1为小于A^1/2且最接近A^1/2的某个奇数,那么可以得到整数A的一个整除关系式,A = aˇ1*aˇ2 + rˇa,其中aˇ1为除数,aˇ2为系数,aˇ2 ≥aˇ1,rˇa为余数。令C = aˇ2–aˇ1,假如aˇ2 = aˇ1,那么C = 0,可称整数A为C0rˇa类型的整除关系数。如果aˇ2 – aˇ1 = 1,那么C = 1,则称其为C1rˇa型。其余以此类推。

例如,2603 = 51*51+2,因为C = 51-51 = 0,余数R = 2,可以称其为是C0R2型的整除关系数。如果2605 = 51*51+4,因为C = 51-51 = 0,而余数R = 4,则称其为C0R4型的整除关系数。

同样可以得到整数B的整除关系式,B = bˇ1*bˇ2 + rˇb,其中bˇ1为除数,bˇ2为系数,rˇb为余数,同样定义C = bˇ2–bˇ1。

当余数相等,即,rˇa = rˇb时,如果A和B的C值也相同,那么A和B就属于同一个类型的整除关系数。这就是说,整除关系数是按照整除关系式中,系数与除数的差值C,以及余数的大小来进行分类的。属于同一个类型的整除关系数,包含有无数多个大小不一的数值。例如C0R2类型中可有,3*3+2,5*5+2,7*7+2,……。而且任意一个整数,都可以被归纳到某一种整除关系数中去。

本节只是为了统一,定义除数aˇ1为小于A^1/2,且最接近^A1/2的某个奇数,aˇ2 ≥aˇ1,但是这种定义可以放宽。也就是说,如有需要,同一个整数,当改变除数aˇ1时,可以被写成多种不同的整除关系数,也不一定要求余数rˇa <aˇ1。

既然这种崭新的数字分类体系可以适用于所有的整数(本主认为在虚数领域里也可以展开),那么一个顺其自然的问题随之而来,以整除关系数的形式进行减法运算,相比原有的数学体系,有什么特别的好处吗?乘积差公式就是在这样的研究过程中被提出和发现的。博主的结论是:同类整除关系数之间的一次减法计算,如果应用乘积差公式,可以使得因数分解的效率大增。

4)计算最大公约数举例

假如要求两个奇数43046723(=19*2265617)和2603(=19*137)之间的最大公约数,按照更相减损法,首先需要把它们相减。那么可有,43046723–2603 = 43044120 = 5*8*1076103。显然,仅靠一次减法,是无法得到它们的最大公约数19,还需要对奇数1076103继续进行分解。

在通常情况下,把一个合数写成因数分解式,并不是一件容易的事,或者说是非常困难。所以上例表明,很难按照更相减损法,直接应用乘积差公式,来求取两个合数之间的公约数。但是,可以先把它们转换成为整除关系数的形式;例如,43046723 = 6561*6561+2,2603 = 51*51+2,再进行减法计算。因为它们是同类型的整除关系数,事情就会变得很简单,可以根据乘积差公式直接得到,

43046723–2603 =(6561-51)(6561+51)+(0–0)*51 +(2–2)= 6510*6612 = 5*8*651*1653

同样是在两个整数之间进行了一次减法计算,但是由于对整数的理解和表达方法不同,仅凭着整除关系数中的乘数和系数,利用乘积差公式,就可以把1076103直接分解为651和1653两个因数。即使它们并不一定是质数,但是需要继续进行质因数分解的数值却大约降低了平方倍,相当于只需要对A1/2数值级别的整数继续进行因数分解,因而计算量被大大降低了。

从计算复杂度的角度上看,相当于以O(n)或者是O(n2)的计算量(这是一种极好的多项式时间等级),完成了两个整数之间差值的初步因数分解。这种效率的提升,要归功于在进行整数的减法计算之前,首先引进可以详细描述整(合)数特点的“DNA技术”——整除关系数,再与乘积差公式完美地结合起来。

无论乘数差C的数值是否等于零,只要两个整除关系数属于同一个类型,当它们相减时,这种神奇的因数分解效率始终存在。数值越大时,这种效果就会越加明显。

然后可以按照更相减损法,分别对651和1653继续进行计算。很容易得到,2603-651 = 1952 = 25*61,2603-1653 = 950 = 2*52*19。很快就能够验证出,在得到的61和19这两个质数中,19就是43046723和2603之间的最大公约数,即gcd(43046723,2603)= 19。

在计算两个不同类型的整除关系数之差时,即使利用乘积差公式,也不一定能够得到因数分解式;此时计算最大公约数,需要一数一议。

四、结束语

说句题外的话,把整数写成整除关系数的形式,相比较乘积差公式,是另外一个课题。而且所带来的好处(例如形成新型的因数分解算法),远非帮助计算出最大公约数仅此而已,另有甚多。例如,可以很直观地看到,只要是同一个类型的整除关系数,它们因数的数值结构都具有某种共同的规律可循;尤其是在一种新型的因数分解数学模型中(利用博主发明并已公布的余数定理,可以构成一种新型的二元二次不定方程,其中两个未知数分别是:因数和L数),在这种新的数字分类体系下显而易见的L数值的结构规律,有助于快速分解出合数中较大的因数(从此秘钥无“大数”)。

这样一来,仅需很少的计算量,凭借着对于几个很小合数的因数分解式的了解,就可以揣摩、总结出只要是属于同一个类型,无论它们的数值大或小,即使是任意大合数也可以适用的因数数值的分布规律;或者是与因数相对应的L数值的结构规律,从而减少筛选因数时的计算量。

研究告一段落,心有感慨:一分忐忑,二分狐疑,三分寂寞。乘积差公式比我们已知的平方差公式要更加广义,既简单又实用,而且是属于数学中最基础的初等代数内容,怎么会时经千百年,历经那么多的前辈大师都没有被发现呢?一般来说,越是在最基础的科学领域里面,就越没有创新的可能性;但是一旦有所创新,对于上层建筑的影响应该就会越大。那么,在现有的数字分类体系、四则运算等最基础的数学领域里,还有创新的可能性吗?本主认为有,太有了。

吾本“下里巴人”,奈何和者盖寡?

每个人都希望能够在历史的长河中,留下一抹色彩。如有可能,希望朋友们把这篇文章传播出去,尽可能地让更多的人获知,使得科学收益。我在书写历史的同时,卿等也在加彩,这要比在历史古迹上,刻下“张三李四到此一游”,有意义得多。

............试读结束............

查阅全文加微信3231169

如来写作网gw.rulaixiezuo.com(可搜索其他更多资料)

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 3231169@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.xiezuozhinan.com/12576.html