首页 > 其他分享 >巧记斜边函数hypot

巧记斜边函数hypot

时间:2024-12-21 18:56:30浏览次数:6  
标签:巧记 double 斜边 x2 hypot y1 y2

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壶

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

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

→斜边

标签:巧记,double,斜边,x2,hypot,y1,y2
From: https://blog.csdn.net/jjmhx/article/details/144616440

相关文章

  • Visual Studio 小技巧记录
    1、将行距设置成1.15跟舒服一些。2、括号进行颜色对比。效果:3、显示参数内联提示。效果:4、保存时规范化代码。配置文件:5、将滚动条修改为缩略图效果:......
  • SciTech-Mathmatics-Probability+Statistics: Statistical Inference统计推断- Estima
    轻松学统计:https://zh-cn.statisticseasily.com/词汇表/什么是统计推断/StatisticalInference:SI(统计推断)的类型SI(统计推断)主要有两种类型:Estimation:根据样本数据确定总体的特征;PointEstimation:提供总体参数的单一值估计;ConfidenceInterval:提供......
  • A-CSPO课程概念澄清和实操:假定(Assumptions)、实验(Experiments)、假设(Hypotheses)
    “确保你把这当作一个实验。”“我们的工作假设是客户想要这个。”这些场景熟悉吗?你的团队(或整个组织)可能会经常混淆假定(Assumptions)、实验(Experiments)和假设(Hypotheses)等术语,这会造成混乱。让我们澄清一下每一个术语的含义。假定是关于我们认为某个想法的正确性的陈述......
  • 巧记Elasticsearch常用DSL语法
    记知识先记轮廓,关于DSL语法的轮廓,记住以下3句话即可:索引、文档和查询Match、Term和Bool还有翻页和聚合1、又爱又恨的DSL使用Elasticsearch时,我们一般是调用RestClientAPI的方式读取和写入集群数据。有时也会使用工具查阅和操作数据,比如:使用Chrome插件MultiElasticsearch......
  • sublime实用技巧记录
    一、去除重复行1、先排序,edit-sortlines2、查找目标查找目标为:^(.+)$[\r\n](^\1$[\r\n]{0,1})+替换为:\1\n 二、一次性选中或者删除指定行数之间的数据如果想删除文档里第20001行~第100000行的代码,按以下步骤: 1、选中第100000行(目标代码的结束行数,可按快捷......
  • 【生活技巧记录】歌词Lyric生成及音乐标签嵌入
    前置工具准备:BesLyric:一款专门制作网易云音乐LRC滚动歌词的软件!搜索、下载、制作歌词更方便!Foobar2000:一款适用于Windows平台的高级免费软件音频播放器百度:DDDDFoobar2000美化版:用于将歌词保存于音乐标签,内嵌式歌词使音乐更方便操作步骤一......
  • CF1835D Doctor's Brown Hypothesis 题解
    题目链接点击打开链接题目解法首先只有在一个强联通分量里的点对才可能合法,因此我们这里说的图默认为强联通图但是上面的条件成立只需要满足\(k\gen\),考虑用好\(k\)可以认为是极大的性质所以说我们可以通过图中所有的环\(+\)路径来凑出\(k\)不难发现,所有的环能构成的......
  • 调试代码技巧记录
    1.webpack的完整sourcemap调试代码,要映射回原始文件,devtool的sourcemap模式是不行的,会丢失loader的映射信息,导致映射结果是一个半源码半编译的文件,cheap-module-source-map可以,cheap只需要行信息,module会关联loader的sourcemap,能拿到完整的sourcemap2.添加sourcemap文件后,要清......
  • 【230902-1】如图,▲ABC为等腰直角三角形,A为直角,腰长2倍根号2;D为斜边BC中点,E为直角边AC
    【230902-1】如图,▲ABC为等腰直角三角形,A为直角,腰长2倍根号2;D为斜边BC中点,E为直角边AC中点;F为AD上动点,GE垂直EF,GE=EF;H为BC边上动点,连接HE,B‘是B关于HE的轴对称点。求:B’G的最小值?......
  • CF1835D Doctor's Brown Hypothesis
    由于\(k\)够大,你可以随便在图上走环,不用担心不用走,那么你所担心的只有环长的\(\rmgcd\)。将所有强连通分量先求出,满足条件的点对必然在一个强连通分量里。我们以随便一个点为根,跑出强连通分量中的一棵dfs树,我们断言,如果\(dep_x-dep_y\equivdep_y-dep_x\equivk\bmodd\)......