题目链接:T156527 直角三角形
根据勾股定理, a 2 + b 2 = = c 2 a^2 + b^2 == c^2 a2+b2==c2。
当然,由于勾股定理不在小学数学考查的的范围内,我们需要对勾股定理进行一些证明,让小学生能够轻松地做出此题。
这个↑,就是传说中的“赵爽弦图”。
赵爽(?-?),一名婴,字君卿,是中国在三国时期吴国的数学家。生卒年不详,是否生活在三国时代其实也受质疑,著有《周髀算经注》,即对《周髀算经》的详细注释。
“勾股各自乘,并之,为弦实。开方除之,即弦。”
——赵爽《勾股圆方图说》
“按弦图,又可以勾股相乘为朱实二,倍之为朱实四,以勾股之差自相乘为中黄实,加差实,亦成弦实。”
——赵爽《勾股圆方图说》
语文好的同学,可以直接看下一个证明方法了。
在这张途中,正方形ABDE以弦为边长,由4个相等的直角三角形再加上中间的那个小正方形组成。
不妨设 A E = B F = C G = D H = a AE = BF = CG = DH = a AE=BF=CG=DH=a, B E = C F = D G = A H = b BE = CF = DG = AH = b BE=CF=DG=AH=b, A B = B C = C D = D A = c AB = BC = CD = DA = c AB=BC=CD=DA=c。
那么,
S 正方形 E F G H = ( b − a ) 2 S_{\text {正方形}EFGH} = (b - a)^2 S正方形EFGH=(b−a)2 ,
S △ A E B = S △ B F C = S △ C G D = S △ D H A = a × b 2 S_{\text {△}AEB} = S_{\text {△}BFC} = S_{\text {△}CGD} = S_{\text {△}DHA} = \frac {a \times b} {2} S△AEB=S△BFC=S△CGD=S△DHA=2a×b ,
4 S △ = 2 a b 4S_{\text {△}} = 2ab 4S△=2ab,
∴ S 正方形 A B C D = 4 S △ + S 正方形 E F G H = ( b − a ) 2 + 2 a b = a 2 − 2 a b + b 2 + 2 a b = a 2 + b 2 ∴S_{\text{正方形}ABCD} = 4S_{\text {△}} + S_{\text{正方形}EFGH} = (b - a)^2 + 2ab = a^2 - 2ab + b^2 + 2ab = a^2 + b^2 ∴S正方形ABCD=4S△+S正方形EFGH=(b−a)2+2ab=a2−2ab+b2+2ab=a2+b2
又 ∵ S 正方形 A B C D = c 2 \text{∵} S_{\text{正方形}ABCD} = c^2 ∵S正方形ABCD=c2
∴ a 2 + b 2 = c 2 \text{∴}a^2 + b^2 = c^2 ∴a2+b2=c2
证毕。
没错就是这个,上面那张图多看几遍就会恍然大悟。
刘徽(约225年-约295年),山东淄博淄川人,三国时代魏国数学家,梁敬王刘定国之孙菑乡侯刘逢喜的后裔。
青朱出入图,是东汉末年数学家刘徽根据“割补术”运用数形关系证明勾股定理的几何证明法,其法富有东方智慧(?莫名想起这个),特色鲜明、通俗易懂。
有许多勾股定理的证明方式,都是基于相似三角形中两边长的比例。
设 A B C {\displaystyle ABC} ABC 为一直角三角形,直角于 ∠ C {\displaystyle \angle C} ∠C(看右图)。从点 C {\displaystyle C} C 画上三角形的高,并将此高与 A B ‾ {\displaystyle {\overline {AB}}} AB 的交叉点称之为 H {\displaystyle H} H。此新 △ A C H {\displaystyle \bigtriangleup ACH} △ACH 和原本的 △ A B C {\displaystyle \bigtriangleup ABC} △ABC 相似,因为在两个三角形中都有一个直角(这又是由于“高”的定义),而两个三角形都有 A {\displaystyle A} A 这个共同角,由此可知第三只角都是相等的。同样道理, △ C B H {\displaystyle \bigtriangleup CBH} △CBH 和 △ A B C {\displaystyle \bigtriangleup ABC} △ABC 也是相似的。这些相似关系衍生出以下的比率关系:
因为
B C ‾ = a , A C ‾ = b , a n d A B ‾ = c , {\displaystyle {\overline {BC}}=a,{\overline {AC}}=b, {\rm and} {\overline {AB}}=c,\!} BC=a,AC=b,andAB=c,
所以
a c = H B ‾ a a n d b c = A H ‾ b . {\displaystyle {\frac {a}{c}}={\frac {\overline {HB}}{a}} {\rm and} {\frac {b}{c}}={\frac {\overline {AH}}{b}}.\,} ca=aHBandcb=bAH.
可以写成
a 2 = c × H B ‾ a n d b 2 = c × A H ‾ . {\displaystyle a^{2}=c\times {\overline {HB}} {\rm and} b^{2}=c\times {\overline {AH}}.\,} a2=c×HBandb2=c×AH.
综合这两个方程,我们得到
a 2 + b 2 = c × H B ‾ + c × A H ‾ = c × ( H B ‾ + A H ‾ ) = c 2 . {\displaystyle a^{2}+b^{2}=c\times {\overline {HB}}+c\times {\overline {AH}}=c\times ({\overline {HB}}+{\overline {AH}})=c^{2}.\,\!} a2+b2=c×HB+c×AH=c×(HB+AH)=c2.
换句话说:
a 2 + b 2 = c 2 . a 2 + b 2 = c 2 . {\displaystyle a^{2}+b^{2}=c^{2}.\,\!}a^2+b^2=c^2.\,\! a2+b2=c2.a2+b2=c2.
在定理的证明中,我们需要如下四个辅助定理:
SAS(如果两个三角形有两组对应边和这两组边所夹的角相等,则两三角形全等。)
三角形面积是任一同底同高之平行四边形面积的一半。
任意一个正方形的面积等于其二边长的乘积。
任意一个矩形的面积等于其二边长的乘积。
其中3、4两个定理小学已经讲过了,这里不再赘述。
为了证明勾股定理,我们首先证明SAS。
由几何直观可得:如果两个三角形有两组对应边和这两组边所夹的角相等,则两三角形全等。
证毕。
好吧,SAS是一个公理(依据人类理性的不证自明的基本事实<来自百度百科>)。
下面是欧几里得对于勾股定理的证明。
欧几里得(希腊语:Ευκλειδης,古希腊语:Εὐκλείδης,前325年-前265年),有时被称为亚历山大里亚的欧几里得,以便区别于墨伽拉的欧几里得。希腊化时代的数学家,被称为**“几何学之父”。他活跃于托勒密一世时期的亚历山大里亚,也是亚历山太学派的成员。他在著作《几何原本》**中提出五大公设,成为欧洲数学的基础。欧几里得也写过一些关于透视、圆锥曲线、球面几何学及数论的作品。欧几里得几何被广泛的认为是数学领域的经典之作。
此证明以图形重新排列证明。两个大正方形的面积皆为 ( a + b ) 2 {\displaystyle (a+b)^{2}} (a+b)2。把四个相等的三角形移除后,左方余下面积为 a 2 + b 2 {\displaystyle a^{2}+b^{2}} a2+b2,右方余下面积为 c 2 {\displaystyle c^{2}} c2,两者相等。证毕。
证明: ∵ S 梯形 A B C D = 1 2 ( a + b ) 2 = 1 2 ( a 2 + 2 a b + b 2 ) \text{∵}S_{\text {梯形}ABCD} = \frac {1} {2} (a + b)^2 = \frac {1} {2} (a^2 + 2ab + b^2) ∵S梯形ABCD=21(a+b)2=21(a2+2ab+b2)
又 ∵ S 梯形 A B C D = S △ A E D + S △ E B C + S △ D E C = 1 2 a b + 1 2 b a + 1 2 c = 1 2 ( 2 a b + c 2 ) \text{∵}S_{\text {梯形}ABCD} = S_{\text{△}AED} + S_{\text{△}EBC} + S_{\text{△}DEC} = \frac {1} {2}ab + \frac {1} {2}ba + \frac {1} {2}c = \frac {1} {2}(2ab + c^2) ∵S梯形ABCD=S△AED+S△EBC+S△DEC=21ab+21ba+21c=21(2ab+c2)
∴ c 2 = a 2 + b 2 \text {∴}c^2 = a^2 + b^2 ∴c2=a2+b2
证毕。
詹姆斯·艾伯拉姆·伽菲尔德(英语:James Abram Garfield,1831年11月19日—1881年9月19日),美国政治家、数学家,生于俄亥俄州。美国共和党人。南北战争期间加入北方军队,与南方奴隶制军队作战,拥有少将军衔。1880年加菲尔德当选为第20任总统,他是美国首位具有神职人员身份的总统。就职仅4个月即遭暗杀,是美国第二位被暗杀的总统。他在数学方面的贡献主要是在勾股定理的证明方面的新成就,他也是美国历史上唯一一位数学家出身的总统。他的第一夫人是卢克丽霞·鲁道夫,育有五子二女。
相信你们看完了以上的证明已经对勾股定理有了初步的了解。那么,现在我们就可以开始写代码了:
#include
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
if (i * i + j * j == n * n) {
cout << i << ' ' << j << endl;
return 0;
}
}
这份已经是AC的代码了,如果让它运行得更快一点的话,可以稍稍地做一点优化。
为了让 a a a,也就是 i i i 最小, a a a 肯定小于 b b b。所以可以让 j j j 从 i i i 开始循环。代码如下:
#include
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
if (i * i + j * j == n * n) {
cout << i << ' ' << j << endl;
return 0;
}
}
第一份代码运行了121ms,第二份运行了113ms。所以,我们要想办法优化自己的程序,使自己的程序加快不到10ms。
此题涉及如此多的数学知识,建议至少评蓝。