a*******y 发帖数: 1040 | 1 这个要是用牛顿method的话,那个导数里还是有sqrt啊, 是不是要是碰到还是说
binary search 算了 |
f*****e 发帖数: 2992 | 2 用级数或:
x=sqrt(5)
对y=5-x^2用newton。
初始(x0,5-x0^2),此处的切线是y-(5-x0^2)=(-2x0)(x-x0),
令y=0得x=(5-x0^2)/(2x0)+x0=(5+x0^2)/(2x0)
所以迭代就是
x(i+1)=(5+x(i)*x(i))/(2x(i))
x(n)->sqrt(5)
if x(0) = 1, x(3)^2=5.0,只要3步就搞定。
【在 a*******y 的大作中提到】 : 这个要是用牛顿method的话,那个导数里还是有sqrt啊, 是不是要是碰到还是说 : binary search 算了
|
d**e 发帖数: 6098 | 3 我觉得是不是用binary search才算是cs fundamental,因为各个公司都强调cs
fundamental。牛顿method是什么我也不知道。。。
【在 a*******y 的大作中提到】 : 这个要是用牛顿method的话,那个导数里还是有sqrt啊, 是不是要是碰到还是说 : binary search 算了
|
a*******y 发帖数: 1040 | 4 Newton
x(n+1) = x(n) - f(x)/f'(x) |
w****x 发帖数: 2483 | 5
这题你面Facebook用牛顿就死了
【在 a*******y 的大作中提到】 : 这个要是用牛顿method的话,那个导数里还是有sqrt啊, 是不是要是碰到还是说 : binary search 算了
|
k***x 发帖数: 6799 | 6 去年面G的intern也是这道题,用牛顿法,英勇牺牲
【在 w****x 的大作中提到】 : : 这题你面Facebook用牛顿就死了
|
C***U 发帖数: 2406 | 7 牛顿快吧
【在 k***x 的大作中提到】 : 去年面G的intern也是这道题,用牛顿法,英勇牺牲
|
d**e 发帖数: 6098 | 8 为什么死?
【在 w****x 的大作中提到】 : : 这题你面Facebook用牛顿就死了
|
j***y 发帖数: 1069 | 9 secant method, 不需要求导数, 收敛速度稍慢于牛顿 (没记错的话是1.83次)
【在 a*******y 的大作中提到】 : 这个要是用牛顿method的话,那个导数里还是有sqrt啊, 是不是要是碰到还是说 : binary search 算了
|
a*******y 发帖数: 1040 | 10 哥哥, secant method其实就是用delta(y)/delty(x)来当成导数的,principle是一
样的
【在 j***y 的大作中提到】 : secant method, 不需要求导数, 收敛速度稍慢于牛顿 (没记错的话是1.83次)
|
N**n 发帖数: 832 | 11 为啥不用辗转相除?只需要100多条汇编指令,代码如下
int sqrt (unsigned x) {
unsigned m, y, b;
m = 0x40000000;
y = 0;
while (m) {
b = y | m;
y >>= 1;
if (x >= b) {
x -= b;
y |= m;
}
m >>= 2;
}
return y;
}
【在 a*******y 的大作中提到】 : 这个要是用牛顿method的话,那个导数里还是有sqrt啊, 是不是要是碰到还是说 : binary search 算了
|
P*********c 发帖数: 35 | 12 牛顿法本意是求x^2-k=0的零点,比如求sqrt(3),就是f(x)=x^2-3,f'(x)=2x,导数没
有根号。
【在 a*******y 的大作中提到】 : 这个要是用牛顿method的话,那个导数里还是有sqrt啊, 是不是要是碰到还是说 : binary search 算了
|