由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请问给一个整数,如何返回他的平方根?
相关主题
只用加减实现整数除法,到底想考查什么?问个问题 求sqrt
Sqrt(X) 的time complexity 是多少呢整数除法
大牛看看为撒这个sqrt binary search过不了OJjava Math.sqrt 的精度是?
几个面试的数学题问一道算法题(整数表示成乘积)
问一个面试题,给两个数,求商和余数请教怎么实现sqrt?
除法有什么规律吗?脸书电话面试第一轮代码题面筋
G等消息中 求bless如何计算sqrt
讨论一下给定平面上n点,求在同一直线上最多点问题~~大家用double /float 类型作hash key么这类和数学有关的面试题怎么解决?
相关话题的讨论汇总
话题: ans话题: double话题: middle话题: low话题: int
进入JobHunting版参与讨论
1 (共1页)
a********n
发帖数: 1287
1
谢谢。
就是sqrt的实现。
p*****2
发帖数: 21240
2
不是说binary search吗?
f*******t
发帖数: 7549
3
牛顿迭代法,任取一a,然后不断a = (a + n/a)/2循环,直到某个精度。
double sqrt(int n)
{
if(n <= 0)
return 0;

double ans = (double)n / 2.0;
int round = 0;
const double epsilon = 0.00001;
while(true) {
round++;
ans = (ans + (double)n / ans) / 2;
double diff = ans * ans - (double)n;
if(diff < 0)
diff = -diff;
if(diff < epsilon)
break;
}

printf("Calculated %d rounds\n", round);

return ans;
}
B*****e
发帖数: 9375
4
嘿嘿, 有笔和纸, 谁还记得怎么算出一个数的开方?
譬如一分种之内, 算出(2011)^(0.5), 精确到小数点后第三位.
小时候学过的 ...

【在 a********n 的大作中提到】
: 谢谢。
: 就是sqrt的实现。

d********t
发帖数: 9628
5
我早都忘记了,你告诉我一下吧。

【在 B*****e 的大作中提到】
: 嘿嘿, 有笔和纸, 谁还记得怎么算出一个数的开方?
: 譬如一分种之内, 算出(2011)^(0.5), 精确到小数点后第三位.
: 小时候学过的 ...

a****h
发帖数: 126
6
格式像算除法,
2011 是“被除数”, 两位一分,
20 > 4×4 <5*5, 所以第一位是 4,
余数加11 是 411, 第一位的结果 4 × 20 加上 a, 计算 8a*a < 411, a=4 是第
二位,
类推。
a********n
发帖数: 1287
7
谢,这个实现写的挺不错。

【在 f*******t 的大作中提到】
: 牛顿迭代法,任取一a,然后不断a = (a + n/a)/2循环,直到某个精度。
: double sqrt(int n)
: {
: if(n <= 0)
: return 0;
:
: double ans = (double)n / 2.0;
: int round = 0;
: const double epsilon = 0.00001;
: while(true) {

y*******g
发帖数: 6599
8
这种题目一般考点不是这个,需要数值知识的会考其他东西

【在 f*******t 的大作中提到】
: 牛顿迭代法,任取一a,然后不断a = (a + n/a)/2循环,直到某个精度。
: double sqrt(int n)
: {
: if(n <= 0)
: return 0;
:
: double ans = (double)n / 2.0;
: int round = 0;
: const double epsilon = 0.00001;
: while(true) {

z****u
发帖数: 104
9
平方根这个题目应该是给定一个整数,找和它的平方根最接近的整数吧
用二分查找

【在 y*******g 的大作中提到】
: 这种题目一般考点不是这个,需要数值知识的会考其他东西
d******y
发帖数: 244
10
using binary search
public double sqrt(int n)
{
if(n<=0)
return 0;
int low = 0;
int high = n + 1;
while((high - low) > 1)
{
middle = (high + low)/2;
if(middle*middle<=n)
low = middle;
else
high = middle;
}
}
d******y
发帖数: 244
11
using binary search
public double sqrt(int n)
{
if(n<=0)
return 0;
int low = 0;
int high = n + 1;
while((high - low) > 1)
{
middle = (high + low)/2;
if(middle*middle<=n)
low = middle;
else
high = middle;
}
return low;
}
a********n
发帖数: 1287
12
如果给的数字开不了方,这个code没结果吧。

【在 d******y 的大作中提到】
: using binary search
: public double sqrt(int n)
: {
: if(n<=0)
: return 0;
: int low = 0;
: int high = n + 1;
: while((high - low) > 1)
: {
: middle = (high + low)/2;

d******y
发帖数: 244
13
I didn't test my code. just to practice.Any comments will be appreciated
I think you may know the concept of this type of question.
e.g. if n = 100 you choose 0 - 101 boundary. 50 * 50 > n so the boundary
turns into 0 - 50 keep doing this.
BTW : what is Gover's security clearance and DoD secret security clearance?
1 (共1页)
进入JobHunting版参与讨论
相关主题
这类和数学有关的面试题怎么解决?问一个面试题,给两个数,求商和余数
问一个F的题除法有什么规律吗?
double sqrt(double x)的代码谁能贴一下?G等消息中 求bless
Facebook 第一轮电面讨论一下给定平面上n点,求在同一直线上最多点问题~~大家用double /float 类型作hash key么
只用加减实现整数除法,到底想考查什么?问个问题 求sqrt
Sqrt(X) 的time complexity 是多少呢整数除法
大牛看看为撒这个sqrt binary search过不了OJjava Math.sqrt 的精度是?
几个面试的数学题问一道算法题(整数表示成乘积)
相关话题的讨论汇总
话题: ans话题: double话题: middle话题: low话题: int