3 勾股定理延伸
我们一直低估了勾股定理。上一章表明它适用于任何有平方项的公式。
3.1 理解该定理
在任意直角三角形中如果 a=3 和 b=4,那么 c=5。很简单吧?那么,关键的一点是 a 和 b 成直角(注意小红框)。一个方向的移动对另一个方向没有影响。
这有点像南北与东西的关系。向北移动不会改变你的东西方向,反之亦然--这两个方向是独立的(极客术语是正交)。
勾股定理可以让你找到正交方向之间的最短路径距离。因此,这并不是真正的直角 “三角形”--而是比较以直角运动的 “物体”。
如果我向东走 3 个街区,向北走 4 个街区,我离起点有多远?
3.2 “c ”是什么?
我们可以把 c 想象成一个数字,但这样我们就会陷入无聊的三角。我喜欢把 c 看作 a 和 b 的组合。
但它并不是像加法那样的简单组合--毕竟,c 并不等同于 a + b。它更像是一个分量的组合--勾股定理让我们以类似加法的方式将正交分量组合起来。这就是神奇之处。
在我们的例子中,C 是 5 块 “距离”。但它不止于此:它包含了东 3 个街区和北 4 个街区的组合。沿着 C 移动意味着你同时向东和向北走。这种思考方式不错吧?
3.3 将定理串联起来
用红色画另一个三角形,用 c 作为其中一边。由于 c 和 d 成直角(正交!),我们就得到了勾股定理关系:
c² +d² = e²。
当我们用 a² +b²代替 c² 时,可以得到
a² +b² +d² = e² 我们用 3 个正交分量(a、b 和 d)写出了 e。
3.4 三维空间的勾股定理
觉得两个三角形很奇怪?试试从纸上拉一个出来。不要将三角形平放,而是将红色三角形向上倾斜:
它是同一个三角形,只是朝向不同。但现在我们是在三维空间中!如果我们把边分别叫做 x、y 和 z,而不是 a、b 和 d,就会得到
x² + y² + z² = distance² 。
参考资料
- 软件测试精品书籍文档下载持续更新 https://github.com/china-testing/python-testing-examples 请点赞,谢谢!
- 本文涉及的python测试开发库 谢谢点赞! https://github.com/china-testing/python_cn_resouce
- python精品书籍下载 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
- Linux精品书籍下载 https://www.cnblogs.com/testing-/p/17438558.html
3.5 多维
正如您所猜测的,勾股定理可以推广到任意维数。
维数。也就是说,您可以将一堆三角形串联起来,然后统计 “外部 ”部分:
你可以想象每个三角形都有自己的维度。如果线段成直角,则定理成立,计算结果也就出来了。
3.6 如何计算距离 勾股定理是计算两点间距离的基础。考虑两个三角形:
-
边长为 (4,3) [蓝色] 的三角形
-
边长为 (8,5) [粉红色] 的三角形
从蓝色三角形的顶点 [坐标为 (4,3)] 到红色三角形的顶点 [坐标为 (4,3)] 的距离是多少?
到红色三角形的顶点 [坐标 (8,5)] 的距离是多少?那么,我们可以通过减去相应的边,在端点之间创建一个虚拟三角形。
虚拟三角形的斜边就是两点之间的距离: -
距离:(8-4,5-3) = (4,2) = sqrt(20) = 4.47
在三维空间中,我们可以用同样的方法求得点 (x1, y1,z1) 和点 (x2, y2,z2) 之间的距离:
distance²= (x2 - x1)² +(y2 - y1)² +(z2 - z1)²而且,如果一边比另一边大,也没有关系,因为差值是平方,将是正值(该定理的另一大副作用)。
3.7 如何使用任何距离
该定理并不局限于狭义的空间距离定义。它可以应用于任何正交维度:空间、时间、电影口味、颜色、温度。
温度。事实上,它也适用于任何一组数字(a,b,c,d,e)。让我们一起来看看。
3.8 测量用户偏好 假设你做了一项调查,以了解用户对电影的偏好:
- 您喜欢《兰博》吗?(1-10)
- 您喜欢《小鹿斑比》吗?
- 您喜欢《宋飞正传》吗?
我们如何比较人们的评分?找到相似的偏好?
如果我们将评分表示为一个 “点”(兰博、小鹿斑比、宋飞),我们就可以这样表示
我们的调查回答可以这样表示 - 硬汉:(10,1,3)
- 普通人:(5,5,5)
- 敏感男:(1,10,7)
利用该定理,我们可以看出人们的 “差异 ”有多大:
利用这个定理,我们就可以知道人们的 “差异 ”有多大: - 硬汉与普通人:(10 - 5, 1 - 5, 3 - 5) = (5, -4, -2) = 6.7
- 硬汉与敏感人:(10 - 1, 1 - 10, 3 - 7) = (9, -9, -4) = 13.34
正如我们所猜测的,硬汉与敏感人之间的差距很大,普通人处于中间。该定理可以帮助我们量化这种距离,并对类似结果进行聚类等有趣的操作。
这种技术可用于对 Netflix 电影偏好进行评级,也可用于其他类型的协同过滤,即根据偏好进行预测(如亚马逊推荐)。用极客的话说,我们将偏好表示为一个向量,然后使用该定理找出它们之间的距离(或许还能将相似的项目分组)。
3.9 寻找颜色距离
测量颜色之间的 “距离 ”是另一个有用的应用。颜色用红/绿/蓝 (RGB) 值来表示,从 0(最小值)到 255(最大值)。例如
- 黑色:(0, 0, 0)- 无颜色
- 白色:(255, 255, 255)
- 每种颜色的最大值 - 红色:(255, 0, 0)- 纯红色,无其他颜色
我们可以在 “色彩空间 ”中绘制出所有的颜色,就像这样:
我们可以用通常的方法得到颜色之间的距离:得到从我们的(红、绿、蓝)值到黑色(0,0,0)的距离。人类似乎无法分辨相距只有 4 个单位的颜色之间的差别;甚至 30 个单位的距离在我看来也非常相似:
你觉得这些颜色有多相似?色彩距离为我们提供了一种量化
的方法来测量颜色之间的距离。通过巧妙地运用色彩距离,你甚至可以破解某些模糊的图像。
3.10 要点:你可以测量任何东西
如果你能用数字表示一组特征,你就可以用定理对它们进行比较:
- 一周内的温度: (周一、周二、周三、周四、周五)。比较连续几周的气温,看看它们有多 “不同”(找出 5 维向量之间的差值)。
- 每小时、每天或每周进入商店的顾客人数 - 时空距离:(纬度、经度、高度、日期)。如果你要制作一台时光机(或使用时光机的电子游戏),这很有用!
- 人与人之间的差异:(身高、体重、年龄)
- 公司之间的差异:(收入、利润、市值)
你可以通过不同的权衡特征来调整距离(例如,将年龄差异乘以某个系数)。但核心理念非常重要,我再重复一遍: 如果可以量化,就可以用勾股定理进行比较。
你的 x、y 和 z 轴可以代表任何数量。而且不局限于三维空间。当然,数学家们很乐意告诉你测量距离(又称度量空间)的其他方法,但勾股定理是最著名的,也是一个很好的起点。
3.11 小结
当我们重温 “教过 ”的概念时,需要学习的东西太多了。数学是美丽的,但它的优雅通常被机械的证明和一堵方程墙所掩盖。我们不需要更多的证明,我们需要的是有趣、直观的结果。
例如,勾股定理:
- 适用于任何形状,而不仅仅是三角形(如圆)
- 适用于任何有正方形的等式(如 mv²/2)
- 适用于任何维数(a² +b² +c² + ...)。
- 测量任何类型的距离(如颜色或电影偏好之间的距离)。