由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - how to calculate sqrt double?
相关主题
求sqrt的binary算法,多谢Facebook 第一轮电面
写了个sqrt,请点评leetcode 新题findMin2 大家给挑挑毛病。
leetcode:这题 int sqrt(int)??!!为啥用intC++ Q23: if if else
大牛看看为撒这个sqrt binary search过不了OJjava Math.sqrt 的精度是?
大家碰到过这题吗?reverse float/double number问个问题 求sqrt
leetcode ValidNumber问题的代码,供参考两道算法题
来贡献个facebook phone 题吧c++ float precision
请教数学类题目中对于1<<31的处理FB的sqrt的题是int还是float?
相关话题的讨论汇总
话题: mid话题: double话题: prec话题: start话题: end
进入JobHunting版参与讨论
1 (共1页)
k****r
发帖数: 807
1
function double sqrt(double d, int p). p is precision option. My code is as
follows. Please let me know if you see any error. Thanks,
public static double sqrt(double d, int p) {
if (d < 0) {
return Double.NaN;
}
double prec = Math.pow(10, - p);
double start = 0;
double end = d;
while (start < end) {
double mid = start + (end - start) / 2;
if (mid == 0) {
return mid;
}
if (mid * mid == d) {
return mid;
} else if (mid < d / mid) {
start = mid + prec;
} else {
end = mid - prec;
}
}
return start;
}
k****r
发帖数: 807
2
求教有人帮忙看看吗
s**x
发帖数: 7506
3
for most of interview codes, if you have more than 10 lines, usually
something wrong.
1) for number less than 1 and great than one, it should be processed
differently.
2) why you need to check mid == 0?
3) why you need add prec to mid each time?
4) always compare with a precision for floats, do not compare directly.
k****r
发帖数: 807
4
大牛能否写个clean的code供学习一下。

【在 s**x 的大作中提到】
: for most of interview codes, if you have more than 10 lines, usually
: something wrong.
: 1) for number less than 1 and great than one, it should be processed
: differently.
: 2) why you need to check mid == 0?
: 3) why you need add prec to mid each time?
: 4) always compare with a precision for floats, do not compare directly.

s**x
发帖数: 7506
5

google.

【在 k****r 的大作中提到】
: 大牛能否写个clean的code供学习一下。
k****r
发帖数: 807
6
你太牛了

【在 s**x 的大作中提到】
:
: google.

D*******a
发帖数: 3688
7
you code is wrong by checking "mid * mid == d"
you should return mid if abs(start-end)
as

【在 k****r 的大作中提到】
: function double sqrt(double d, int p). p is precision option. My code is as
: follows. Please let me know if you see any error. Thanks,
: public static double sqrt(double d, int p) {
: if (d < 0) {
: return Double.NaN;
: }
: double prec = Math.pow(10, - p);
: double start = 0;
: double end = d;
: while (start < end) {

k****r
发帖数: 807
8
right. Thanks for the hint.

【在 D*******a 的大作中提到】
: you code is wrong by checking "mid * mid == d"
: you should return mid if abs(start-end):
: as

s**x
发帖数: 7506
9
if ( d < 0) return -1;
prec = ...;
start = d > 1 ? 1: d;
end = d > 1 ? d : 1;
While(1) {
m = (start + end) / 2;
v = m * m - d;
if(v > prec)
end = m;
else if( v < -prec)
start = m;
else
return m;
}
}
N*****m
发帖数: 42603
10
newton's method

as

【在 k****r 的大作中提到】
: function double sqrt(double d, int p). p is precision option. My code is as
: follows. Please let me know if you see any error. Thanks,
: public static double sqrt(double d, int p) {
: if (d < 0) {
: return Double.NaN;
: }
: double prec = Math.pow(10, - p);
: double start = 0;
: double end = d;
: while (start < end) {

k****r
发帖数: 807
11
thank you for the sharing. much more clear now.

【在 s**x 的大作中提到】
: if ( d < 0) return -1;
: prec = ...;
: start = d > 1 ? 1: d;
: end = d > 1 ? d : 1;
: While(1) {
: m = (start + end) / 2;
: v = m * m - d;
: if(v > prec)
: end = m;
: else if( v < -prec)

1 (共1页)
进入JobHunting版参与讨论
相关主题
FB的sqrt的题是int还是float?大家碰到过这题吗?reverse float/double number
如何计算sqrtleetcode ValidNumber问题的代码,供参考
LinkedIn Data Scientist, Machine Learning 电面来贡献个facebook phone 题吧
Calculate Sqr()请教数学类题目中对于1<<31的处理
求sqrt的binary算法,多谢Facebook 第一轮电面
写了个sqrt,请点评leetcode 新题findMin2 大家给挑挑毛病。
leetcode:这题 int sqrt(int)??!!为啥用intC++ Q23: if if else
大牛看看为撒这个sqrt binary search过不了OJjava Math.sqrt 的精度是?
相关话题的讨论汇总
话题: mid话题: double话题: prec话题: start话题: end