给定整数n,求离根号n最近的整数。

如题,如何使用二分查找实现#笔试题目#
全部评论
def func(n):     p = 0.618     i = 0     j = n     while i<=j:         mid = int(p*i + (1-p)*j)         if abs(mid*mid-n)<=abs((mid-1)*(mid-1)-n) and abs(mid*mid-n)<=abs((mid+1)*(mid+1)-n):             return mid         elif abs((mid-1)*(mid-1)-n)<=abs(mid*mid-n) and abs(mid*mid-n)<=abs((mid+1)*(mid+1)-n):             j = mid - 1         else:             i = mid + 1
点赞 回复 分享
发布于 2019-08-13 10:58
  private static int core(int n){     int small=0,big=n/2+1,mid=0;     while(small<big){         mid = small+(big-small)/2;         if(mid*mid>n)  big = mid-1;         else if(mid*mid<n)  small=mid+1;         else   return mid;     }     int s=0,e=0;     if(mid*mid>n){         s = mid-1;e = mid;     }else{         s = mid;e = mid+1;     }     double m = (s+e)/2.0;     if(m*m<n) return e;     else return s; }
点赞 回复 分享
发布于 2019-08-23 09:13
import numpy as np def bin_search_sqrt(num): left, right = 0, num while right - left > 1: mid = (left + right) // 2 if mid ** 2 > num: right = mid else: left = mid return right if right**2 - num < num - left**2 else left for i in range(15, 37): print(i,bin_search_sqrt(i),np.sqrt(i))输出: 16 4 4.0 17 4 4.12310562562 18 4 4.24264068712 19 4 4.35889894354 20 4 4.472135955 21 5 4.58257569496 22 5 4.69041575982 23 5 4.79583152331 24 5 4.89897948557 25 5 5.0 26 5 5.09901951359 27 5 5.19615242271 28 5 5.29150262213 29 5 5.38516480713 30 5 5.47722557505 31 6 5.56776436283 32 6 5.65685424949 33 6 5.74456264654 34 6 5.83095189485 35 6 5.9160797831 36 6 6.0看上去好像是可以的?
点赞 回复 分享
发布于 2019-08-13 12:49
def find_nearest_n(number):     left = 0     right = number     while right-left >= 0.01:         if ((left+right)/2)**2 == number:             return (left+right)/2         elif ((left+right)/2)**2 > number:             right = (left+right)/2         else:             left = (left+right)/2     if int(right) > int(left):         return int(right)     elif left - int(left) < 0.5:         return int(left)     else:         return int(left)+1 阈值可以再调大一点 应该有还有更好的方法
点赞 回复 分享
发布于 2019-08-13 11:45
牛顿割线法
点赞 回复 分享
发布于 2019-08-13 10:55
Sqrt(n)四舍五入不行吗?
点赞 回复 分享
发布于 2019-08-13 10:49
一次找小于sqrt(n)中最大的,一次找大于之中最小的,再比较这样?
点赞 回复 分享
发布于 2019-08-13 10:19

相关推荐

05-15 19:04
门头沟学院 Java
2025.5.1450min,手撕+和项目相关的场景题拷打只录了自己的声音,具体的问题记不清了,没有大模型相关问题面试官太好了,全程面带微笑,直接叫我的名字面试官先进行自我介绍,然后介绍部门,确认个人信息。自我介绍。面试官说一面已经考察过算法了,二面编码就不考察很多算法了,考察解决实际问题的能力,以及开放性问题,没有正确答案,说自己的思路就行,不会的就跟他说换一个,有很多题可以问。1.&nbsp;手撕代码,没要求运行,是给定一些日期区间,有起始时间和终止时间,求重叠的时间段。面试官非常详细的介绍了这个题目的背景,商家在确定酒店价格的时候不能选择重复的时间段。题目中要求时间复杂度是O(n)2.&nbsp;敏感词过滤怎么实现的3.&nbsp;目前互联网中要屏蔽的敏感词很多,还有什么时间复杂度更低的算法4.&nbsp;有些人会在敏感词中间插入一些字符,这样该怎么判断敏感词5.&nbsp;Kafka如何保证消息的可靠性6.&nbsp;用户点赞失败后如何解决7.&nbsp;Redis中如何8.&nbsp;出现过缓存穿透吗,如何解决9.&nbsp;用户登录凭证怎么做的10.&nbsp;多种身份的用户怎么实现鉴权11.&nbsp;出了一个场景,像知乎盐选,冲了会员才能看一些内容,管理员也能将用户设置成非会员,如何实现这个功能(这边简单回答了之后,还是追问了一些)12.&nbsp;用户会员过期了怎么办(到时间会员过期,或是管理员让这个用户会员过期)13.&nbsp;Redis集群有一个节点挂了,怎么办14.&nbsp;所有的节点都不可用了怎么办15.&nbsp;这时候描述一下大量请求到服务端到数据库的这个过程是怎样的16.&nbsp;说了限流和熔断,追问服务器端要怎么做,数据库端要怎么做17.&nbsp;Redis中某个请求很多的Key(上万)怎么分担压力(分片)反问,最后评价说有知识广度,编码思路也挺好的(不知道是不是安慰的话)技术细节方面,平时可以多考虑下提高性能,确定性能评估方案——————————这三天面了5场,快虚脱了,许愿能有一个好结果
查看17道真题和解析
点赞 评论 收藏
分享
05-27 20:52
已编辑
北京邮电大学 Java
如题,春招ssob上社招岗位说可以接受应届,结果屁颠屁颠过去经历了一轮&nbsp;“社招”拷打.TL:5.26一面5.27二面一面:65mins&nbsp;-&nbsp;项目深挖:结合面试官给出的滴滴的某场景,设计:redis具体数据结构结构、redis雪崩、击穿、穿透怎么防护;Mysql表结构、Sql怎么写、索引怎么建立、设计业务流程逻辑;整体问的都很&quot;飘&quot;,不知道对不对,全程结合业务问基于简历技术栈的实际设计和应用.0mins&nbsp;-&nbsp;八股&nbsp;-&nbsp;(面试官说&nbsp;个人社招不喜欢问八股)15mins&nbsp;-&nbsp;手撕:【撕】左上到右下是否有可行路径,(5mins&nbsp;,本地idea&nbsp;写&nbsp;核心代码模式,顺便debug了下面试官提出的小瑕疵).【聊】拓展这个手撕(10mins),问了:1、DP下的最大收益2、可行路条数(没具体刷过,回答的构建树,&nbsp;问复杂度,答的&nbsp;3^(m*n)&nbsp;全忘了).&nbsp;说过邻接图+暴力方案&nbsp;否决了&nbsp;继续想.二面:60分钟聊天:聊BG,聊学习生涯,聊业务、聊项目,聊需求评审,聊方案选型,聊项目细节5分钟手撕:最大回文子串15分钟反问:问业务、问带教氛围、问landing期望等等。被指出问题:废话很多(hhh&nbsp;学校呆久了&nbsp;总想回答问题前先回答前因后果)-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-许愿三面~
查看10道真题和解析
点赞 评论 收藏
分享
评论
点赞
5
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务