如何快速求一个整数的平方根?有这样的同事,也是福气!(服气)

合集 · 英雄哥的算法题集 (10)

  1. 2:54
    P1 两数之和
  2. 3:44
    P2 三数之和
  3. 2:51
    P3 四数之和
  4. 2:44
    P4 N数之和
  5. 3:08
    P5 N皇后
  6. 10:07
    P6 二分查找
  7. 9:55
    P7 哈希表
  8. 5:21
    P8 线段树 && 单调队列
  9. 4:27
    P10 数组
  10. 8:35
    P11 整数平方根
Description
给大家总结了一下BGM,其实学习算法最重要的是兴趣,好的BGM可以把兴趣点燃,所以BGM才是最重要的。这个视频的BGM按顺序如下为:
1、魂斗罗BGM
2、万万没想到BGM
3、偷功
4、少林足球BGM
5、悬疑场景下用的BGM(00:40 秒左右的那个,我也不知道是叫啥)
6、六脉神剑BGM
7、柯南BGM
8、阿朱之死BGM
9、迪迦奥特曼BGM
10、TVB经典BGM(好多TVB剧里都有,比如《金装四大才子》)

Comments

烤咸鱼干 2022-12-11

【chatGPT】计算一个整数的平方根最快的方法之一是使用牛顿迭代法。牛顿迭代法是一种数学方法,它通过不断迭代来逼近目标值。这意味着,您需要给出一个初始值,然后不断地重复使用一个公式来更新该值,直到它接近目标值为止。 例如,假设您要计算整数 x 的平方根。首先,您需要给出一个初始值 y0,作为迭代的起点。然后,您可以使用以下公式来计算下一个迭代值 y1: y1 = (y0 + x/y0) / 2 您可以不断地重复使用这个公式来计算下一个迭代值,直到 yk 接近目标值为止。 在这种情况下,您可以计算 x 的平方根,直到 yk 接近 x 的平方根为止。例如,如果 x 的平方根约为 2.5,那么 yk 的值应该接近 2.5,且它与 2.5 的差值应该很小。 要实现这种方法,您需要编写一个函数,该函数接收两个参数:一个整数 x 和一个初始值 y0。然后,该函数应该不断地重复计算下一个迭代值,直到 yk 接近目标值为止。例如,您可以使用以下 Python 代码

♥ 1163 ↩ 66

都怪敌人狡猾 2022-12-11

有没有那种压根看不懂,但是看完的人。

♥ 1126 ↩ 44

wahaaa1984 2022-12-13

先建立一个库,把一千亿以下的整数平方根答案存进去,然后用查数据库的方式找出答案,我觉得这个方法最快,不服来辩。

♥ 1054 ↩ 65

苍左 2022-12-11

您说的对,牛顿莱布尼茨迭代法也是一种求解平方根的方法。牛顿莱布尼茨迭代法是一种逐次逼近的方法,它通过不断迭代来逼近目标值。 与二分法相比,牛顿莱布尼茨迭代法的优点是它更快速,能够更快地求解平方根。但是,二分法更容易理解和实现,在某些情况下也可以提供较高的精度。所以,哪种方法更适合使用,要取决于具体情况。

♥ 313 ↩ 9

SLW287R 2022-12-11

还没看,盲猜0x5f375a86[doge](这串数字烂熟于心了)

♥ 306 ↩ 36

群星与牧歌 2022-12-11

摆烂的小白:如果说会出现错误进位产生的问题,那我直接拿x²与n进行一次对比做一个修正验算不就行了吗,反正能跑就行

♥ 228 ↩ 12

Yembry 2022-12-11

正好我之前想过这个问题,粗略地说说我的想法: 定义y=x^n,已知y,求x。(以下都为二进制)以n=2为例: 首先根据y的位数确定x的位数,x的位数+1=(y的位数-1)/2(向下取整),x最高位置1,其余位为0。 然后二分法迭代,不过不用乘法。只看最高两位,10×10可以通过移位得到,11×11=10×10+10+11,之后的计算也像这样,用两次加法代替乘法。 我也没系统的学过,只是兴趣,如有错误欢迎指正。

♥ 206 ↩ 10

烂妹 2022-12-13

之前在工地,一个快退休的老师傅给我表演了一波徒手开根。我都惊呆了

♥ 132 ↩ 8

宽容吹落星如雨 2022-12-12

自己临时写的c++代码,理论上是logn。并且没有*的运算。 int mySqrt(int n, int& rest) { if (n == 0) { rest = 0; return 0; } int ret = mySqrt(n >> 2, rest); rest = (rest << 2) + (n & 3); if (rest >= (ret << 2) + 1) { rest -= (ret << 2) + 1; return (ret << 1) + 1; } else { return (ret << 1); } }

♥ 104 ↩ 9

英雄哪里出来 2022-12-11

给大家总结了一下BGM,其实学习算法最重要的是兴趣,好的BGM可以把兴趣点燃,所以BGM才是最重要的。这个视频的BGM按顺序如下为: 1、魂斗罗BGM 2、万万没想到BGM 3、偷功 4、少林足球BGM 5、悬疑场景下用的BGM(00:40 秒左右的那个,我也不知道是叫啥) 6、六脉神剑BGM 7、柯南BGM 8、阿朱之死BGM 9、迪迦奥特曼BGM 10、TVB经典BGM(好多TVB剧里都有,比如《金装四大才子》)

♥ 98 ↩ 4

木藕菌 2022-12-11

你的放弃可以成就更多的人=只要你不卷,别人就多一份成功的希望。

♥ 95 ↩ 5

__拉赫骂你懦夫 2022-12-12

第一步,分析该业务需要结果的最大精度 第二步,创建一个函数,入参是一个整数,返回值是一个浮点数。同时做精度处理 第三步,提交。 第四步,这个代码不是我写的。

♥ 77 ↩ 4

新来的穿山甲 2022-12-11

二分逼近,泰勒展开,WTF,[脱单doge]

♥ 48 ↩ 3

点赞可好 2022-12-11

之前学计算机原理的时候还接触到一个减奇数法开平方 因为n^2=1+3+…+(2n-1) 所以只要不断减递增的奇数直到结果小于等于0 就可以得到开平方数的整数部分了 感觉比较好的点是不涉及浮点数运算

♥ 44 ↩ 5

神的棄子 2022-12-11

这个我会: // What The Fuck

♥ 43 ↩ 3

Abel_Rae 2022-12-16

有一种眼前的知识逐渐超出自己认知范围的美[脱单doge][喜欢]

♥ 28 ↩ 1

灵莜 2022-12-12

如果是根据平台优化的话,Intel手册上详细说明了要什么精度怎么算最优,double从53bits,52bits,26bits和14bits的精度都给出最优的内嵌汇编了。有AVX512F指令集的话,最高精度可以直接用VSQRTPD向量化,一次算八个double。虽然throughput是24个周期,但还是要比软件方法快[滑稽]

♥ 28

TryRemember 2022-12-15

你这骗的,我不得不投,气死我了

♥ 21 ↩ 1

严肃喜剧人 2022-12-11

主题逐渐远离做游戏[doge]

♥ 20 ↩ 3