当前位置: 首页 > article >正文

巧记斜边函数hypot

hypot是一个数学函数,源于英文"hypotenuse(斜边)",hypot(a, b)返回直角边边长为a、b的直角三角形(right-angled triangle)的斜边长度。该函数定义在<math.h>头文件中,其功能相当于sqrt(a*a + b*b)。

函数原型:double hypot( double x, double y );

示例代码如下:

#include<stdio.h>
#include<math.h>

double dist(double x1, double y1, double x2, double y2){
    //此代码可替代下面3行代码:return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
    double dx = x1-x2;
    double dy = y1-y2;
    return hypot(dx, dy);
}

int main(){
    double x1=9, y1=5, x2=2, y2=7, y;
    y=dist(x1, y1, x2, y2); //调用函数
    printf("%f\n", y);
    return 0;
}

网上说相比sqrt,hypot可能会使用更精确的算法来避免精度损失,老金试了不少数结果都是一样。

比如将输入值设为:x1=9999, y1=5555, x2=2222, y2=7777

结果:

hypot里的两个参数可以颠倒,也可以为负数,结果不变。这是个数学问题,很好理解。

这个函数的用法没什么难的,关键是hypot、hypotenuse看着比较生分,不太好记。不像sqrt这种使用频比较高的,根本不用记。

当你想秀一下求斜边的神技时,却想不起来怎么写,是不是很尴尬?

从词源来说,hypotenuse是由hypo和tenuse两部分组成所。hypo是个前缀,指“under下面”,tenuse和tense很像,其实它俩是同源的,都来自词根tend,指“stretch延伸”。

什么叫向下延伸呢?不好理解,也不好记,咱们可以找个实物代表一下。最典型的就是水流,高山流水,自上而下,简称“下流”——“下”对应under,“流”对应stretch。要打造这种景观,就需要有一个“斜坡”,而直角形的斜边就类似这样一个斜坡。

不过搞明白这个道理你不一定能记住这个单词,因为中间有断层:hypo为什么是under?tenuse怎么就有延伸的意思?

老金解释不了,这是语言千百年进化的结果。

所以这个单词用词根词缀也未必好记,倒不如直接使用联想记忆:

hypotenuse:hy怀疑(拼音首字母)+ po婆+ten十+use用

→我怀疑这个婆娘被十个人用过了

→我把这个人想“歪”了,我认为她走了“斜”路

→斜边

那么hypotenuse的阉割版hypot呢,也可以照猫画虎:

hypot:hy怀疑+ po婆+t蹄

→我怀疑这个婆娘的蹄子下面垫了增高垫(或者是穿了高跟鞋)

增高垫是斜面、脚面是斜面

→斜边

或者还可以这样:

hypotenuse:h黄老邪+ y摇+pot壶

→黄老邪摇摇晃晃地对着酒壶喝酒

→人也斜、壶也斜、酒也斜

→斜边


http://www.kler.cn/a/445512.html

相关文章:

  • 【Jenkins】pipeline 的基础语法以及快速构建一个 jenkinsfile
  • 音频开发中常见的知识体系
  • LeetCode:144.前序遍历
  • 什么是Modbus协议网关?
  • vue响应式数据-修改对象的属性值,视图不更新
  • FPGA高速下载器SZ901
  • JavaScript网络请求( XMLHttpRequest 对象,进度事件, 跨源资源共享)
  • express+mysql实现注册功能
  • NPM国内镜像源多选择与镜像快速切换工具(nrm)介绍
  • 慢牛提速经典K线形态-突破下跌起始位和回档三五线,以及徐徐上升三种形态
  • 软件工程
  • iPhone通话记录生成器,苹果一键生成通话记录,手机ios制造专家
  • 差分矩阵(Difference Matrix)与累计和矩阵(Running Sum Matrix)的概念与应用:中英双语
  • [NOIP2004 提高组] 合并果子-STL容器优先队列priority_queue
  • Apache Solr RCE(CVE-2019-0193)--vulhub
  • Linux里的interface index是按顺序来的吗?[ChatGPT]
  • 【JavaEE初阶】线程 和 thread
  • Mysql迁移达梦大批量数据报错处理_踩坑总结
  • 【Git从入门到精通】——新版IDea集成Git、Idea集成Github、Gitee以及GItLab应用(看这一篇就够了)
  • 鸿蒙审核版本页面显示异常之混淆代码问题
  • MFC 文档模板 每个文档模板需要实例化吧
  • Note20241220_一种组态王Modbus模拟通讯仿真实现方案
  • 《探秘 QT 5.14.1 类库的奇妙世界》
  • html 中 表格和表单的关系与区别
  • 连通“数据”,让制造变“聪明”
  • Leetcode经典题15-- 找出字符串中第一个匹配项的下标(KMP)