Redian新闻
>
F一题:double sqrt如何优化
avatar
F一题:double sqrt如何优化# JobHunting - 待字闺中
S*n
1
binary search的话复杂度是log(nm), e= 10^-m;这个有办法优化吗?不知道面试官要
什么样的答案
avatar
s*s
2
newton法不能用在double上?
avatar
r*h
3
double sqrt是说输入输出都要是double吗?
那应该用牛顿法比较好吧?

【在 S******n 的大作中提到】
: binary search的话复杂度是log(nm), e= 10^-m;这个有办法优化吗?不知道面试官要
: 什么样的答案

avatar
S*n
4
就一直问我怎样优化,没说要用牛顿法啊,他就说如果x很大或者很小的情况下,应该
如何处理
avatar
c*p
5
还能再优化么?我想想。。。
avatar
c*y
6
很小的时候,1/sqrt(1/x) 等价于很大
x很大的时候,可以把初始值猜得小一点。 肯定排除二分,起码newton-raphson

【在 S******n 的大作中提到】
: 就一直问我怎样优化,没说要用牛顿法啊,他就说如果x很大或者很小的情况下,应该
: 如何处理

avatar
c*a
7
newton就是优化。你画一画就明白了,比2分缩得还快。
在leetcode上,2分是过不了大oj的,非要newton,哪怕leetcode是int的sqrt。
avatar
r*h
8
嗯,如果不用牛顿法,至少也要gradient descent

【在 c******a 的大作中提到】
: newton就是优化。你画一画就明白了,比2分缩得还快。
: 在leetcode上,2分是过不了大oj的,非要newton,哪怕leetcode是int的sqrt。

avatar
x*0
9
mark
avatar
g*s
10
不过牛顿这东西不可能现场推出来吧?只能靠死记公式了~

【在 c******a 的大作中提到】
: newton就是优化。你画一画就明白了,比2分缩得还快。
: 在leetcode上,2分是过不了大oj的,非要newton,哪怕leetcode是int的sqrt。

avatar
l*t
11
牛顿本质上就是线性逼近
理解这个现场推公式还是不难的

【在 g*******s 的大作中提到】
: 不过牛顿这东西不可能现场推出来吧?只能靠死记公式了~
avatar
c*a
12
只要以前看过一遍,一辈子都记住了吧。。。。。

【在 g*******s 的大作中提到】
: 不过牛顿这东西不可能现场推出来吧?只能靠死记公式了~
avatar
s*s
13
//agree. 我碰到过求三次方的,楞了一下,然后就推出来了。interviewer很高兴。

【在 c******a 的大作中提到】
: 只要以前看过一遍,一辈子都记住了吧。。。。。
avatar
c*p
14
先mark
avatar
r*h
15
记住
x_1 = x_0 - f(x_0)/f'(x_0) 就可以啦

【在 g*******s 的大作中提到】
: 不过牛顿这东西不可能现场推出来吧?只能靠死记公式了~
avatar
p*e
16
加上这个?
double power = 1.;
while(x < 1.){
power /= 10.;
x *= 100;
}
while(x > 100.){
power *= 10.;
x /= 100.;
}
.....
return ret*power;

【在 S******n 的大作中提到】
: 就一直问我怎样优化,没说要用牛顿法啊,他就说如果x很大或者很小的情况下,应该
: 如何处理

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。