首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >hypot()的伴侣

hypot()的伴侣
EN

Stack Overflow用户
提问于 2018-03-09 10:18:42
回答 1查看 445关注 0票数 8

hypot函数在C语言的1999年修订版中引入,它计算给定其他边作为参数的直角三角形的斜边,但要小心避免由于简单的实现而导致的上溢/下溢

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
double hypot(double a, double b)
{
  return sqrt(a*a + b*b);
}

我发现自己需要配套的功能:给定三角形的边和斜边,找到第三条边(避免低于/溢出)。我可以想出几种方法来做到这一点,但我想知道是否有现有的“最佳实践”?

我的目标是Python,但实际上我是在寻找算法指针。

谢谢你的回复。如果有人对结果感兴趣,可以在here和Python版本的here中找到我的C99实现,它是Hypothesis项目的一部分。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-09 16:13:29

首先要做的是因式分解:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
b = sqrt(h*h - a*a) = sqrt((h-a)*(h+a))

我们不仅避免了一些溢出,而且还获得了准确性。

如果有任何因子接近1E+154 = sqrt(1E+308) (IEEE75464位浮点数的最大值),那么我们也必须避免溢出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sqrt((h-a)*(h+a)) = sqrt(h-a) * sqrt(h+a)

这种情况是不太可能的,所以两个sqrt是合理的,即使它比sqrt慢。

请注意,如果为h ~ 5E+7 * a,则为h ~ b,这意味着没有足够的数字来表示与h不同的b

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49191477

复制
相关文章
QML动态显示组件(支持在线编辑动态刷新)
QML动态组件显示器主要用于方便界面开发,在线编辑保存后自动刷新组件界面,并支持拖拽文件显示的方式。
Qt君
2019/07/15
5.5K0
Vue页面内修改外部引进组件CSS(局部修改)
在实际的Vue项目中,我们经常需要引进一些外部组件,elementUI, ant-designed,之类的,而且我们总需要在某些下,对这些个组件的某些样式进行修改(不影响全局样式的情况下修改)
Qwe7
2022/06/09
1.3K0
js页面刷新或关闭时弹框消失_js刷新页面如何保留页面内容
  用法:onbeforeunload 事件在即将离开当前页面(刷新或关闭)时触发。该事件可用于弹出对话框,提示用户是继续浏览页面还是离开当前页面。对话框默认的提示信息根据不同的浏览器有所不同,标准的信息类似 “确定要离开此页吗?”。该信息不能删除。但你可以自定义一些消息提示与标准信息一起显示在对话框。注意: 在 Firefox 浏览器中,只显示默认提醒信息(不显示自定义信息)。
全栈程序员站长
2022/11/17
11.9K0
使用xshell时显示wget不是内部或外部命令
刚才在捣鼓xshell。上面的小图标是红色的,就是我画的小红色圆圈里的,正常的时候是绿色的,如果出现红色,就说明有问题了。
纯情
2023/04/26
1.1K0
使用xshell时显示wget不是内部或外部命令
用jquery刷新或重新加载页面
在网页开发过程中,经常会遇到需要重新加载或刷新页面,下面我来说一下如果通过jq来刷新或重新加载页面,来看代码。
OECOM
2020/07/01
7K0
flask html页面中放动态链接
{% block head %} {{ super() }} <link rel="shortcut icon" href="{{ url_for('static', filename = 'favicon.ico') }}" type="image/x-icon"> <link rel="icon" href="{{ url_for('static', filename = 'favicon.ico') }}" type="image/x-icon"> {% endblock %} url_f
用户5760343
2019/07/08
2.9K0
针对Steam平台的攻击分析
数字游戏平台服务不仅简化了游戏本身的销售,还为开发商提供了额外的盈利手段。例如,游戏中的皮肤、设备和角色增强元素,都可以获得大量的收益。用户自己也可以互相推销商品,最稀有的可以卖到几千美元。
FB客服
2019/12/09
2.3K0
针对Steam平台的攻击分析
vue页面刷新_vue强制重置组件
经常使用vue的小伙伴看到这个应该很熟悉吧,我们经常用它来实现前进后退,但别忘了它还可以实现自身页面刷新
全栈程序员站长
2022/11/03
2.4K0
vue页面刷新_vue强制重置组件
vue meta设置页面
在项目中,有一个搜索页面,需要根据不同的关键字,动态修改meta信息,用于seo优化。
py3study
2021/03/23
3.4K0
陌溪在百度上搜索蘑菇博客,被吓了一跳
最近,有很多小伙伴反馈,说在部署蘑菇博客后,发现没有办法修改网站的 meta 信息,也就是浏览器上的 icon图标和标题信息,没有办法自定义。
陌溪
2021/12/08
6530
陌溪在百度上搜索蘑菇博客,被吓了一跳
vue 组件中动态引入外部js库
最近开发项目在和华为Volte做对接,结果华为volte第一版还是原生加jquery来实现的,由于里面有不少需要引入外部js文件的,就给了一天的时间做对接,没办法只能剑走偏锋了 首先定义一个 utils/loadScript.js 封装一个动态加载js文件的方法
李维亮
2022/01/15
6.5K0
网站SEO优化:Meta标签如何书写?Vue项目怎么优化Meta标签?
什么是Meta标签呢?这可不是最近很火的“元宇宙”或是FB。Meta标签,或者说Meta元素,是HTML内head标签的一部分。通常用于指定页面描述、关键字以及未在其他head元素、属性中提供的其他元数据。间接参与浏览器页面渲染,或者为搜索引擎的爬虫提供引导(进而让搜索引擎更好收录网站)。
Mintimate
2022/01/20
4K5
网站SEO优化:Meta标签如何书写?Vue项目怎么优化Meta标签?
js 网站页面标题自定义、滚动、闪烁显示
网站标题自定义并滚动 // JS 代码实现网站标题自定义 <script type="text/javascript"> var sTitle = "这句话是网站页面的标题" function TitleMove(){     sTitle = sTitle.substring(1, sTitle.length) + sTitle.substring(0, 1);     document.title = sTitle;     status = sTitle; } window.setInterval("
Savalone
2020/03/09
4.2K0
nuxt 为单独的页面或组件 注入js
代码如下 head() { return { script: [ { charset: 'utf-8', src:'htt
拿我格子衫来
2022/01/24
1.6K0
nuxt 为单独的页面或组件 注入js
bootstrap 页面标题
<div class="page-header"> -- <div class="page-header"> <h1>页面标题实例 <small>子标题</small> </h1> </div> <p>这是一个示例文本。这是一个示例文本。这是一个示例文本。这是一个示例文本。这是一个示例文本。</p>
用户5760343
2019/07/05
9230
bootstrap 页面标题
Visual Studio 2008 每日提示(二十一)
#201、在vs里运行外部工具 原文链接:You can run external tools within Visual Studio 操作步骤: 菜单:工具+外部工具 添加的外部工具,就会在工具菜单里显示 评论:你知道工具菜单那些程序是外部工具么? #202、创建自己的外部工具 原文链接:You can add your own External Tools to the list 操作步骤: 1、打开外部工具窗口,菜单:工具+外部工具 2、单击“添加”按钮,创建一个“新工具1”的预留位置。
Jianbo
2018/03/01
8450
Vue.js项目中管理每个页面的头部标签的方法
在 Vue SPA 应用中,如果想要修改 HTML 的头部标签,如页面的 title,我们只能去修改index.html模板文件,但是这个是全局的修改,如何为每个页面都设置不一样的 title 呢?下面介绍两种方法。
张张
2019/12/27
1.8K0
创建动态库时,建议使用的链接选项Bsymbolic
回归正题,前段时间项目开发中,实现了一个动态库,封装了一些方法。然后基于这个动态库,实现了一个应用程序。应用程序中含有全局变量A,动态库中也含有全局变量A,当我调用动态库中函数后,发现应用程序的A发生了变化!!!O,My God!对于我这种还没在Linux下做过开发的人来说,一头雾水。。。。。。 于是我尝试着,将A中的变量名称改为B,这样问题也就没有了~~~
河边一枝柳
2021/08/06
1.7K0
点击加载更多

相似问题

当单击链接或单击页面外部时,如何关闭整个菜单?

10

单击链接时刷新页面

22

单击链接标题时显示空白。

15

单击链接时刷新页面

55

页面加载时显示动态标题

21
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文