Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python使用牛顿迭代法和二分法计算任意大自然数的平方根近似值

Python使用牛顿迭代法和二分法计算任意大自然数的平方根近似值

作者头像
Python小屋屋主
发布于 2024-02-29 05:36:11
发布于 2024-02-29 05:36:11
4670
举报
文章被收录于专栏:Python小屋Python小屋

Python中,使用运算符“**”和内置模块math、cmath的函数sqrt()都可以直接计算平方根,其中运算符“**”和cmath.sqrt()可以计算负数的平方根,math.sqrt()的参数不能为负数。例如

Python中的整数可以非常非常非常大,但实数不能,而绝大部分整数的平方根是实数。也就是说,当整数大到一定程度以后,上面计算平方根的方法都不能用了。

那是不是就没法计算超大整数的平方根了呢?肯定不是,接下来我们就来看两个比较常用的方法。

1)牛顿迭代法

运行结果:

2)二分法查找

对于任意自然数n,其平方根一定在[1,n)区间内。可以使用线性搜索逐个测试区间内的自然数并检查其平方是否恰好为n,但这样的话当n变大时需要的时间非常多,收敛速度非常慢。下面的代码使用二分法查找快速缩小搜索范围并返回最接近于n的平方根的自然数。

运行结果:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
牛顿迭代法与二分法计算平方根
因为不是科班出身,所以即使编程一段时间也时常感觉自身基础知识非常不扎实,于是在最近开始补习算法和计算机理论的基础知识。
Originalee
2018/08/30
1.8K0
牛顿迭代法与二分法计算平方根
【小Y学算法】⚡️每日LeetCode打卡⚡️——21.x 的平方根
在二分查找的每一步中,我们只需要比较中间元素 mid 的平方与 x 的大小关系,并通过比较的结果调整上下界的范围。 由于我们所有的运算都是整数运算,不会存在误差
呆呆敲代码的小Y
2021/09/06
2910
牛顿迭代法(Newton's Method)
牛顿迭代法(Newton's Method)                    简介 牛顿迭代法(简称牛顿法)由英国著名的数学家牛顿爵士最早提出。但是,这一方法在牛顿生前并未公开发表。 牛顿法的
Angel_Kitty
2018/04/08
2K0
牛顿迭代法(Newton's Method)
牛顿迭代法应用——求数的平方根和立方根
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115379.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/10
5580
牛顿迭代法求解平方根
迭代,是一种数值方法,具体指从一个初始值,一步步地通过迭代过程,逐步逼近真实值的方法。 与之相对的是直接法,也就是通过构建解析解,一步求出问题的方法。
用户1147754
2019/05/27
1.5K0
LeetCode 进阶之路 - 69.X的平方根
主要使用二分法。可以多看看网上大佬的题解思路。。。 牛顿法我之前有点懵逼,不过确实厉害,学习了
Li_XiaoJin
2022/06/10
2540
华为机试题 HJ107 求解立方根
如果输入的x>1,那么立方根一定在1到x之间,这是有序的,我们可以用二分法查找这之间三次方接近于x的值,当区间范围不超过0.0001表示找到了这个值。
ccf19881030
2023/02/26
6360
华为机试题 HJ107 求解立方根
二分问题-LeetCode 69、167、92(二分,牛顿法,双指针)
实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
算法工程师之路
2019/11/14
4840
141. x的平方根二分法
再0到x之间找,找到一个n使得n2=x或者(n2<x&&(n+1)2>x),这样的n就是需要的,用二分法来实现,因为x2这个函数也是单调的。
和蔼的zhxing
2018/09/04
3090
每天一道leetcode069-x的平方根
实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
乔戈里
2019/01/11
6050
牛顿迭代法求开方
多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。方法使用函数
王小明_HIT
2020/03/11
1.3K0
六十八、快速幂算法、牛顿迭代法、累加数组+二分查找的变形
题目是来自Leetcode:50. Pow(x, n),https://leetcode-cn.com/problems/powx-n/
润森
2022/08/17
8350
六十八、快速幂算法、牛顿迭代法、累加数组+二分查找的变形
程序员的数学基础课(三)余数与迭代法
以下以一个面试题为例, 题目:使用迭代法求一个数的算数平方根,给定固定的精度? 以下是解题思路的图解
zhaozhen
2021/07/15
5810
程序员的数学基础课(三)余数与迭代法
面试手撕算法系列:二分法
这些都是LeetCode上有的题目 手撕无非就是 树、链表、二分、字符串这些常用的数据结构
程序员小猿
2021/01/19
5680
面试手撕算法系列:二分法
程序与数学:牛顿迭代法与平方根近似计算
这个等式是一元二次方程,解方程即可求得x。现在正实数平方根计算问题已转换为解一元二次方程问题。
郎宏林
2021/10/08
1.5K0
程序与数学:牛顿迭代法与平方根近似计算
LeetCode 69. x 的平方根(二分)
实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1:
SakuraTears
2022/01/13
2200
C++版 - Leetcode 69. Sqrt(x) 解题报告【C库函数sqrt(x)模拟-求平方根】
Total Accepted: 93296 Total Submissions: 368340 Difficulty: Medium
Enjoy233
2019/03/05
2.5K0
C++版 - Leetcode 69. Sqrt(x) 解题报告【C库函数sqrt(x)模拟-求平方根】
程序员的数学笔记3--迭代法
这里采用一个故事来介绍什么是迭代法,这个故事是讲述一个国王要重赏一个做出巨大贡献的臣子,让臣子提出他想得到的赏赐,这个聪明的臣子说出了他想得到的赏赐--在棋盘上放满麦子,但要求是每个格子的麦子数量都是前一个格子的两倍。国王本以为这个赏赐可以轻而易举的满足,但真正开始放麦子后,发现即便是拿出全国的粮食也无法满足的臣子的这个赏赐。
kbsc13
2019/08/16
7430
一起装逼!开平方的七种算法
sqrt()函数,是绝大部分语言支持的常用函数,它实现的是开方运算;开方运算最早是在我国魏晋时数学家刘徽所著的《九章算术》被提及。今天写了几个函数加上国外大神的几个神级程序带大家领略sqrt的神奇之处。
五分钟学算法
2019/11/10
6980
【数值计算方法】非线性方程(组)和最优化问题的计算方法:非线性方程式求根的二分法、迭代法、Newton 迭代法及其Python实现
非线性方程式求根是一个重要的数值计算问题,常用的方法包括二分法、迭代法和牛顿迭代法。
Qomolangma
2024/07/30
3620
【数值计算方法】非线性方程(组)和最优化问题的计算方法:非线性方程式求根的二分法、迭代法、Newton 迭代法及其Python实现
相关推荐
牛顿迭代法与二分法计算平方根
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档