强基初中数学&学Python——第八十七课 函数与方程之三十一:勾股定理的逆定理

  埃及文明源自何处至今未知,但它肯定在公元前4000年之前就已存在。说起埃及,就不得不说尼罗河,这条河把南方的水一年一度地泛滥到沿河两岸之后留下沃土,古埃及人一直靠耕种这片沃土谋生。这国家的其余部分是荒漠。每次泛滥后国家就需要重新测量土地,他们用正方形作为土地的面积单位,为了计算方便,把土地分为矩形(长方形)。像土地那么大尺寸,如何保证他们划分的土地块是矩形呢?

  据说,古埃及人用下图

 

的方法作出直角:把一根长绳打上等距离的13个结,然后以3个结间距、4个结间距、5个结间距的长度为边长,用木桩钉成一个三角形,其中一个角便是直角。这样就能划分土地为矩形,面积的计算就更精确了。

  这意味着古埃及人知道(3, 4, 5)这个勾股数(毕达哥拉斯三元数值)来确定一个直角。他们怎么会确信这个角是直角呢?

  我想,他们在实践中已悟出了一个道理:确定长度的三条边只能围成相同的三角形——三角形稳定性。

  (3, 4, 5)这个勾股数比较小,在长期的土地测试中是很容易发现的,因此他们使用这个勾股数来确定直角就不足为奇了。

  相传,我国古代大禹治水测量工程时,也用类似方法确定直角,也有一定的可信度。

  在生产活动中对勾股数的长期使用,人们可能会积累更多的勾股数,例如(5, 12, 13)(8, 15, 17)这些小的勾股数是极其容易被发现的。

  从这些勾股数的关系

3²+4²=5²

5²+12²=13²

8²+15²=17²

提出了上一节课的命题1(勾股定理)。勾股定理对上面的勾股数实际应用显然描述不直接,于是人们把命题1的题设(条件)和结论(结果)调过来。

  命题2 如果三角形的三边长abc满足a²+b²=c²,那么这个三角形是直角三角形。

  我们看到,命题2与上节的命题1的题设、结论位置正好相反。我们把像这样的两个命题叫做互逆命题。如果把其中一个叫做原命题,那么另一个叫做它的逆命题。例如,如果把命题1当成原命题,那么命题2是命题1的逆命题。

  上节已证明命题1(勾股定理)正确,那么命题2一定正确吗?下面举个例子说明。

  原命题:人都会呼吸。题设:人,结论:会呼吸。

  逆命题:会呼吸都是人。题设:会呼吸,结论:人。

  原命题是正确的,但逆命题是错误的。这个说明,虽然我们证明了命题1(勾股定理)正确,但这不能说明它的逆命题——命题2一定正确。

  上一节课我们提到了证明是什么,但没有详细的讨论,这里对证明进行一些简要的说明。

  我们从著名的亚里士多德三段论开始。

  大前提:人都会死。

  小前提:苏格拉底是人。

  结论:苏格拉底会死。

  大前提是对一大类事物的判断,小前提是小类或个体属于大类的判断,结论是小类或个体也有同样的判断——演绎法。这是数学证明里使用最多的方法。

  另外,也不得不说亚里士多德的排中律。

  正命题:Ta是人。

  反命题:Ta不是人。

  在正命题和反命题中有而且只有1个命题是正确的——排中律。用上面的例子,如果“Ta是人是正确的,那“Ta不是人是错误的;如果“Ta是人是错误的,那“Ta不是人是正确的;如果“Ta不是人是正确的,那“Ta是人是错误的;如果“Ta不是人是错误的,那“Ta是人是正确的。

  排中律是人类最容易理解的思维方式,但容易出错。这往往会被诡辩者利用。下面是个简单的例子(诡辩者的情况要复杂得多):

  张三是教授。

  李四是工人。

  王五不是工人。

  结论:王五是教授。

  也许你明知道他的结论是错误的,就不知道怎么反驳他。如果不细想也容易被忽悠,接受错误的思想。就这个例子,因为除了教授不是工人外,还有很多职业不是工人,例如医生,王五不是工人,只是说明他可能是教授而不能肯定他是教授。

  再举个例子。

  正命题:他那里现在是黑夜。

  反命题:他那里现在不是黑夜。

  因为他那里现在不是黑夜,所以他那里现在是白天。

  黑夜和白天是对立,这里例子把排中律当做对立来处理是不对的。因为除了白天不是黑夜,还有极昼,太空也没有昼夜之分。

  排中律,就是把一个整体的范围一分为二,该范围内的事物不是属于这个范围就是属于那个范围,没有中间的情况。例如:是人和不是人合起来是1个整体;是工人和不是工人合起来也是1个整体;是黑夜和不是黑夜合起来也是1个整体。总的来说,只有……”不是……”合起来才符合排中律。

  排中律也在数学证明中使用——归谬法,也叫反证法。

  演绎法、归谬法(反证法)就是我们数学里用到的证明方法。

  命题2分析:ab为直角边作一个直角三角形,根据勾股定理可得到它的斜边是c,这样三边与命题2的三角形三边分别相等,只要能证明三边分别相等的两个三角形相等就行了。我们可以采用反证法证明三边分别相等的两个三角形相等。

  命题2证明:(1)假设三边分别为abc的两个△ABCAB=aAC=bBC=c)和△A'B'C'A'B'=aA'C'=bB'C'=c)不相等。不失一般性,设∠ABC∠A'B'C',使两个BC边和B'C'边重叠在一起(即BB'重叠,CC’重叠),AA'BC的同一侧,那么A'的位置有三种情况:下图1(A'△ABC内)、下图2A'AC边上,不包括AC点)、下图3A'△ABC外)。作图代码附录1

 

1A'△ABC内,过A'点,作线段交于ABACMN点,由于

AM+ANMN 

MB+MA'>A'B' 

NC+NA'>A'C' 

MA'+NA'=MN 

代入

AM+ANMA'+NA' 

左右分别相加

MB+MA'+NC+NA'+AM+AN>A'B'+A'C'+MA'+NA'

(AM+MB)+(AN+NC)+(MA'+NA')>A'B'+A'C'+(MA'+NA')

两边减(MA'+NA')

AB+AC>A'B'+A'C'

和条件

AB=A'B'AC=A'C'

相矛盾,所以A'△ABC内是不可能的。

2A'AC边上,即A'C'AC的一部分,即

A'C'+A'A=AC

这与A'C'=AC相矛盾,所以A'AC边上也是不可能的。

3A'△ABC外,设B'A'AC交于O点,则

OA+OB'AB 

OA'+OC>A'C' 

左右分别相加,得

OA+OB'+OA'+OCAB+A'C'

(OA+OC)+(OB'+OA')>AB+A'C'

AC+A'B'>AB+A'C'

这与A'C'=ACAB=A'B'相矛盾,A'△ABC外也是不可能的。

综合上述,得到三边分别为abc的两个△ABCAB=aAC=bBC=c)和△A'B'C'A'B'=aA'C'=bB'C'=c)不相等是不可能的,(排中律)所以三边分别为abc的两个△ABCAB=aAC=bBC=c)和△A'B'C'A'B'=aA'C'=bB'C'=c)相等。

(2)以ab为直角边作三角形,根据勾股定理,斜边c'必然符合

a²+b²=c'²

又由于

a²+b²=c²

c'²=c²

由于c'c都是正数,所以

c'=c

即这两个三角形的三边都分别相等,由(1)可知它们是相等的三角形,所以ab的夹角也是直角。

命题2证毕。

  这样我们证明了勾股定理的逆命题是正确的,它也是一个定理。我们把这个定理叫做勾股定理的逆定理。它是判定直角三角形的一个依据。

  一般地,如果一个定理的逆命题经过证明是正确的,那么它也是一个定理,称这两个定理互为逆定理。所以勾股定理的逆定理的逆定理是勾股定理。

  例题1我们知道345是一组勾股数,那么3k4k5k(k是正整数)也是一组勾股数吗?一般地,如果abc是一组勾股数,那么akbkck(k是正整数)也是一组勾股数吗?

  解:

(1)

 (3k)²+(4k)²=9k²+16k²=25k²=(5k)²

 3k4k5k(k是正整数)也是一组勾股数。

(2)

 (ak)²+(bk)²=a²k²+b²k²=(a²+b²)k²=c²k²=(ck)²

 akbkck(k是正整数)也是一组勾股数。

  由上一例可知,勾股数是三个数的比例,例如345是一组勾股数,就是说,边长是3:4:5的三角形是直角三角形。

  练习题1有连续的一对正整数bc,它们的和是一个平方数,是否存在一个正整数a,使abc能构成一个直角三角形?

  练习题2有一对不同的正整数bcc>b),它们的和(c+b)是它们的差(c-b)的2k+1k是正整数)次方,是否存在一个正整数a,使abc能构成一个直角三角形?

 

附录1

import turtle as t
t.setup(800,300)
t.screensize(700,200)  
t.up()

for i in range(3):
    t.setpos(-250+i*250, -120)
    t.write(""+str(i+1),align="center",font=("Arial", 14, "normal"))
    t.setpos(-315+i*250, -90)
    t.write("B B'",align="right",font=("Arial", 14, "normal"))
    t.setx(-185+i*250)
    t.write("C C'",font=("Arial", 14, "normal"))
    t.setpos(-230+i*250, 75)
    t.write("A",align="center",font=("Arial", 14, "normal"))
    t.setpos(-315+i*250, -70)
    t.down()
    t.setx(-185+i*250)
    t.setpos(-230+i*250, 70)
    t.setpos(-315+i*250, -70)
    if i==0:
        t.setpos(-230,20)
        t.setpos(-185+i*250,-70)
        #作过A'点,与ABAC分别交于MN点的线段。
        t.up()
        L=50*130/140
        X=-230-L*85/130
        t.setpos(X-5, 10)
        t.write("M",align="right",font=("Arial", 14, "normal"))
        t.setpos(X, 20)
        t.seth(0)
        d=0
        while d<L:
            t.down()
            t.fd(2.5)
            t.up()
            t.fd(2.5)
            d+=5
        t.setpos(t.pos()[0]+5, 10)
        t.write("N",font=("Arial", 14, "normal"))      
    elif i==1:
        t.setpos(26, 49)
    else:
        t.setpos(295, 50)
        t.setpos(-185+i*250,-70)   
        t.up()
        t.setpos(270, 25)
        t.write("O",align="center",font=("Arial", 14, "normal"))   
    t.up()
t.setpos(-230, 25)    
t.write("A'",align="center",font=("Arial", 14, "normal"))
t.setpos(30, 49)
t.write("A'",font=("Arial", 14, "normal"))
t.setpos(300, 50)
t.write("A'",font=("Arial", 14, "normal"))
t.ht()