F一题:double sqrt如何优化# JobHunting - 待字闺中S*n2013-06-22 07:061 楼binary search的话复杂度是log(nm), e= 10^-m;这个有办法优化吗?不知道面试官要什么样的答案
r*h2013-06-22 07:063 楼double sqrt是说输入输出都要是double吗?那应该用牛顿法比较好吧?【在 S******n 的大作中提到】: binary search的话复杂度是log(nm), e= 10^-m;这个有办法优化吗?不知道面试官要: 什么样的答案
c*y2013-06-22 07:066 楼很小的时候,1/sqrt(1/x) 等价于很大x很大的时候,可以把初始值猜得小一点。 肯定排除二分,起码newton-raphson【在 S******n 的大作中提到】: 就一直问我怎样优化,没说要用牛顿法啊,他就说如果x很大或者很小的情况下,应该: 如何处理
c*a2013-06-22 07:067 楼newton就是优化。你画一画就明白了,比2分缩得还快。在leetcode上,2分是过不了大oj的,非要newton,哪怕leetcode是int的sqrt。
r*h2013-06-22 07:068 楼嗯,如果不用牛顿法,至少也要gradient descent【在 c******a 的大作中提到】: newton就是优化。你画一画就明白了,比2分缩得还快。: 在leetcode上,2分是过不了大oj的,非要newton,哪怕leetcode是int的sqrt。
g*s2013-06-22 07:0610 楼不过牛顿这东西不可能现场推出来吧?只能靠死记公式了~【在 c******a 的大作中提到】: newton就是优化。你画一画就明白了,比2分缩得还快。: 在leetcode上,2分是过不了大oj的,非要newton,哪怕leetcode是int的sqrt。
s*s2013-06-22 07:0613 楼//agree. 我碰到过求三次方的,楞了一下,然后就推出来了。interviewer很高兴。【在 c******a 的大作中提到】: 只要以前看过一遍,一辈子都记住了吧。。。。。
r*h2013-06-22 07:0615 楼记住x_1 = x_0 - f(x_0)/f'(x_0) 就可以啦【在 g*******s 的大作中提到】: 不过牛顿这东西不可能现场推出来吧?只能靠死记公式了~
p*e2013-06-22 07:0616 楼加上这个?double power = 1.;while(x < 1.){power /= 10.;x *= 100;}while(x > 100.){power *= 10.;x /= 100.;}.....return ret*power;【在 S******n 的大作中提到】: 就一直问我怎样优化,没说要用牛顿法啊,他就说如果x很大或者很小的情况下,应该: 如何处理