- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章你知道怎么改进Python 二分法和牛顿迭代法求算术平方根吗由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1
2
3
4
5
6
7
8
9
|
def
sqrtb(n):
if
n<
0
:
raise
ValueError(
'n>=0'
)
left,right,x
=
0
,n,n
/
2
while
not
-
1e
-
15
<x
*
x
-
n<
1e
-
15
:
if
x
*
x>n:
right,x
=
x,left
+
(x
-
left)
/
2
else
:
left,x
=
x,right
-
(right
-
x)
/
2
return
x
|
求最接近算术平方根的整数 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
def
sqrtB(x):
if
x
=
=
0
:
return
0
#y,x=x,round(x)
left,right,ret
=
1
,x,
0
while
left<
=
right:
mid
=
left
+
(right
-
left)
/
/
2
if
mid<x
/
mid:
left
=
mid
+
1
ret
=
mid
elif
mid
=
=
x
/
mid:
ret
=
mid
break
else
:
right
=
mid
-
1
return
ret
|
>>> sqrtB(9) 3 >>> sqrtB(8) 2 >>> sqrtB(9.2) 3.0 >>> sqrtB(7.8) 2.0 >>> sqrtB(4) 2 >>> 。
1
2
3
4
5
6
|
def
sqrtn(n):
if
n<
0
:
raise
ValueError(
'n>=0'
)
x
=
n
/
2
while
not
-
1e
-
15
<x
*
x
-
n<
1e
-
15
:
x
=
(x
+
n
/
x)
/
2
return
x
|
一点小改进:不用1e-15来比较 。
1
2
3
4
5
|
def
sqrt2(n):
x
=
n
while
x
*
x>n:
x
=
(x
+
n
/
x)
/
2
return
x
|
缺点:碰到n=7,13,...等,会进入死循环 。
增加判断跳出循环:
1
2
3
4
5
6
|
def
sqrt(n):
x
=
n
while
x
*
x>n:
y,x
=
x,(x
+
n
/
x)
/
2
if
y
=
=
x:
break
return
x
|
# sqrt(n) n=1~25的精度测试:
0.0 -2.220446049250313e-16 0.0 0.0 0.0 0.0 0.0 -4.440892098500626e-16 0.0 -4.440892098500626e-16 0.0 0.0 4.440892098500626e-16 0.0 0.0 0.0 0.0 8.881784197001252e-16 -8.881784197001252e-16 0.0 0.0 0.0 0.0 0.0 0.0 >>> 。
从函数意义上理解:要求函数f(x)=x²,使f(x)=num的近似解,即x²-num=0的近似解.
从几何意义上理解:要求抛物线g(x)=x²-num与x轴交点(g(x)=0)最接近的点.
假设g(x0)=0,即x0是正解,让近似解x不断逼近x0,x0 ~ x - f(x)/f'(x) 。
1
2
3
4
5
6
7
8
9
10
11
12
|
def
cubeN(n):
x,y
=
n
/
3
,
0
while
not
-
1e
-
15
<x
-
y<
1e
-
15
:
y,x
=
x,(
2
/
3
)
*
x
+
n
/
(
3
*
x
*
x)
return
x
'''
>>> cubeN(27)
3.0
>>> cubeN(9)
2.080083823051904
>>>
'''
|
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我的更多内容! 。
原文链接:https://blog.csdn.net/boysoft2002/article/details/119987123 。
最后此篇关于你知道怎么改进Python 二分法和牛顿迭代法求算术平方根吗的文章就讲到这里了,如果你想了解更多关于你知道怎么改进Python 二分法和牛顿迭代法求算术平方根吗的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我有实体: @Entity @Table(name = "CARDS") public class Card { @ManyToOne @JoinColumn(name = "PERSON_I
我正在尝试计算二维多边形的表面法线。我正在使用 OpenGL wiki 中的 Newell 方法来计算表面法线。 https://www.opengl.org/wiki/Calculating_a_S
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 7 年前。 Improve
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我这里有以下 XML: Visa, Mastercard, , , , 0, Discover, American Express siteonly, Buyer Pay
即将发生的 Google 政策变更迫使我们实现一个对话框,以通知欧盟用户有关 Cookie/设备标识符用于广告和分析的情况。我只想向欧盟用户显示此对话框。我不想使用额外的权限(例如 android.p
本文分享自华为云社区《华为大咖说 | 企业应用AI大模型的“道、法、术” ——道:认知篇》,作者:华为云PaaS服务小智。 本期核心观点 上车:AGI是未来5~10年内,每个人都无法回避的技
我有一个与酒精相关的网站,需要先验证年龄,然后才能让他们进入该网站。我使用 HttpModule 来执行此操作,该模块检查 cookie,如果未设置,我会将它们重定向到验证页面。我验证他们的年龄并存储
在欧盟,我们有一项法律,要求网页请求存储 cookie 的许可。我们大多数人都了解 cookie 并同意它们,但仍然被迫在任何地方明确接受它们。所以我计划编写这个附加组件(ff & chrome),它
以下在 C 和/或 C++ 中是否合法? void fn(); inline void fn() { /*Do something here*/ } 让我担心的是,第一个声明看起来暗示函数将被定义
我是一名优秀的程序员,十分优秀!