news 2026/4/15 20:11:43

勾股定理(毕达哥拉斯定理)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
勾股定理(毕达哥拉斯定理)

前言核心公式

对于直角三角形,两条直角边的平方和等于斜边的平方

利用图解法3个直角三角形和一个正方形

  1. 将4个直角三角形和正方形排列成一个c × c c\times cc×c的正方形,可知这个正方形的大小是( b − a ) × ( b − a ) (b-a)\times (b-a)ba)×(ba)
  2. 然后,将她们重新排列成同样的形状,形成两个正方形a × a a\times aa×ab × b b\times bb×b
    已知正方形s × s s\times ss×s的面积为s 2 s^{2}s2根据原理
    同样形状的不同排列,面积不变
    可以得出结论a 2 + b 2 = c 2 a^{2}+b^{2}=c^{2}a2+b2=c2m得证

利用图解法的问题

  • 这些直角三角形和正方形的重新排列,可能需要具备一些特殊属性,比如a=b
  • 还有重新排列正方形,隐式地用到了很多关于三角形、正方形和线的事实。这些假设该如何来做呢???

通过ai的介绍了解到的

  • 变形(已知两边求第三边):
    求斜边: c = a 2 + b 2 ​ 求斜边:c=a^{2}+b^{2}​求斜边:c=a2+b2
    求直角边 a : a = c 2 − b 2 ​ 求直角边 a:a=c^{2}−b^{2}​求直角边aa=c2b2
    求直角边 b : b = c 2 − a 2 求直角边 b:b=c^{2}−a^{2}求直角边bb=c2a2

  • 通俗举例
    最经典的勾股数组合:3(a)、4(b)、5(c)
    3 2 + 4 2 = 9 + 16 = 25 = 5 2 ,完全符合定理; 3^{2}+4^{2}=9+16=25=5^{2},完全符合定理;32+42=9+16=25=52,完全符合定理;
    其他常见勾股数:5、12、13;6、8、10 等。

  • 关键注意点

    • 仅适用于直角三角形(有一个角是 90°);
    • 斜边是直角三角形中最长的边,对应直角的对边。

python化(不是我弄出来的)

# 导入数学库,用于开平方运算importmath# 功能1:已知直角边a、b,计算斜边cdefcalculate_hypotenuse(a,b):""" 计算直角三角形的斜边长度 参数: a: 第一条直角边(正数) b: 第二条直角边(正数) 返回: 斜边长度 """# 先计算平方和,再开平方c=math.sqrt(a**2+b**2)returnc# 功能2:验证三个数是否满足勾股定理(判断是否为勾股数)defcheck_pythagorean(a,b,c):""" 验证a、b、c是否满足勾股定理(自动识别斜边) 参数: a, b, c: 三角形的三条边长(正数) 返回: True/False:是否满足勾股定理 """# 先把三个数排序,最大的数作为斜边sides=sorted([a,b,c])# 排序后:sides[0]和sides[1]是直角边,sides[2]是斜边returnmath.isclose(sides[0]**2+sides[1]**2,sides[2]**2)# 主程序:简单的交互演示if__name__=="__main__":# 示例1:计算斜边(输入经典勾股数3、4)a=3b=4c=calculate_hypotenuse(a,b)print(f"已知直角边a={a},b={b},斜边c={c}")# 输出:5.0# 示例2:验证勾股数(3、4、5)print(f"验证3、4、5是否满足勾股定理:{check_pythagorean(3,4,5)}")# 输出:True# 示例3:验证非勾股数(2、3、4)print(f"验证2、3、4是否满足勾股定理:{check_pythagorean(2,3,4)}")# 输出:False# 可选:让用户手动输入数值(新手友好)print("\n===== 手动输入验证 =====")try:num1=float(input("请输入第一条边长:"))num2=float(input("请输入第二条边长:"))num3=float(input("请输入第三条边长:"))result=check_pythagorean(num1,num2,num3)ifresult:print(f"{num1}{num2}{num3}满足勾股定理(是直角三角形的三边)")else:print(f"{num1}{num2}{num3}不满足勾股定理")exceptValueError:print("输入错误!请输入数字(如3、4.5等)")

码关键解释

  • math.sqrt():Python 内置的开平方函数,比如math.sqrt(25)返回 5.0;
  • math.isclose():用于判断两个浮点数是否近似相等(避免因浮点数精度问题导致判断错误,比如 3.0000000001 和 3 视为相等);
  • sorted([a,b,c]):自动把三个数从小到大排序,不用用户手动区分哪条是斜边,更智能;
  • 异常处理try-except:防止用户输入非数字导致程序崩溃,新手也能轻松避免报错。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 22:51:31

毕设开源 深度学习智慧农业yolo苹果采摘护理定位辅助系统(源码+论文)

文章目录 0 前言1 项目运行效果2 课题背景2.1 农业智能化发展需求2.2 计算机视觉技术发展2.3 现有技术瓶颈2.4 本课题创新点2.5 应用价值预测 3 设计框架3.1. 系统概述3.2. 技术架构3.2.1 核心技术栈3.2.2 系统架构图 3.3. 系统组件详解3.3.1 模型推理组件3.3.1.1 YOLO模型特点…

作者头像 李华
网站建设 2026/4/14 10:10:12

cv_resnet18_ocr-detection部署教程:3步实现图片文字自动提取

cv_resnet18_ocr-detection部署教程:3步实现图片文字自动提取 1. 为什么你需要这个OCR检测模型 你有没有遇到过这样的场景:手头有一堆商品宣传图、合同扫描件、会议白板照片,想快速把里面的关键文字提取出来,却要一张张手动敲&a…

作者头像 李华
网站建设 2026/4/1 0:07:07

工业触摸屏:电阻式触摸屏控制器选型详解

工业触摸屏:电阻式触摸屏控制器选型详解 电阻式触摸屏控制器(Resistive Touch Controller)是连接触摸屏与主控系统(如ADLINK nanoX-BT模块)的核心部件。它负责将触摸压力转换为数字坐标信号。工业应用中,选…

作者头像 李华
网站建设 2026/4/12 18:20:35

【Django毕设源码分享】基于Django的计算机学院考勤管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/11 18:47:19

Z-Image-Turbo降本实战:消费级显卡部署,成本省70%优化教程

Z-Image-Turbo降本实战:消费级显卡部署,成本省70%优化教程 1. 为什么Z-Image-Turbo值得你立刻上手 你是不是也遇到过这些问题:想用AI画图,但Stable Diffusion跑起来卡得像幻灯片;买专业显卡预算超支,租云…

作者头像 李华