带你了解Python妙开根号的三种方式
作者:TUSTer_ 发布时间:2021-10-18 08:27:56
标签:Python,根号
前言:
大家好啊!又是我TUSTer_! python里有自带的库math,cmath,和函数pow来开根号。下边让我带你了解他们吧!记得一键三连!
一,math库
使用math库里的sqr()函数,在math库里边有很多数学函数,如三角函数sin(),pi-π等等:
import math
print(math.sqr(4))
输出结果:2Epsilon = 10e-16
def fab_h(x):
'''
求实数的绝对值
:param x: R
'''
if x >= 0:
return x
else:
return x * -1
def sqrt_h(x, n=2.0):
'''
n倍根号下x
牛顿迭代法
'''
val = x
last = 0.0
if n == 2.0:
while (fab_h(val - last) > Epsilon):
last = val
val = (val + x / val) / 2
return val
while (fab_h(val - last) > Epsilon):
last = val
val = ((n-1)*val + x / val**(n-1)) / n
return val
二,cmath库
cmath多用于复数,负数的开平方。
# importing cmath library
import cmath
# using cmath.sqrt() method
gfg = cmath.sqrt(3)
print(gfg)
输出:
(1.7320508075688772+0j)
三,pow()函数
pow(x,y)的意思是返回x的y次方,如pow(x,2)就是返回x的平方,就是x^2,
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import math # 导入 math 模块
print "math.pow(100, 2) : ", math.pow(100, 2)
# 使用内置,查看输出结果区别
print "pow(100, 2) : ", pow(100, 2)
print "math.pow(100, -2) : ", math.pow(100, -2)
print "math.pow(2, 4) : ", math.pow(2, 4)
输出:
math.pow(100, 2) : 10000.0
pow(100, 2) : 10000
math.pow(100, -2) : 0.0001
math.pow(2, 4) : 16.0
math.pow(3, 0) : 1.0
python不同开根号速度对比
import time
import math
import numpy as np
def timeit1():
s = time.time()
for i in range(750000):
z=i**.5
print ("Took %f seconds" % (time.time() - s))
def timeit2(arg=math.sqrt):
s = time.time()
for i in range(750000):
z=arg(i)
print ("Took %f seconds" % (time.time() - s))
def timeit3(arg=np.sqrt):
s = time.time()
for i in range(750000):
z=arg(i)
print ("Took %f seconds" % (time.time() - s))
def timeit4():
s = time.time()
for i in range(750000):
z=math.pow(i,.5)
print ("Took %f seconds" % (time.time() - s))
timeit1()
timeit2()
timeit3()
timeit4()
Took 0.152364 seconds
Took 0.061580 seconds
Took 1.016529 seconds
Took 0.215403 seconds
来源:https://blog.csdn.net/TUSTer_/article/details/122548314


猜你喜欢
- 网站 首页页面宽度 px Yahoo! 950 淘宝 950 MySpace 960 新浪 950 网易 960 Live Search 9
- 简单的说,一个数据库管理系统应该的提供的基本服务有两种:1.数据访问。对每个数据库管理系,数据访问服务都包含一下几种(1)插入--向数据库中
- 前言上个篇章中我们主要介绍了OpenTelemetry的客户端的一些数据生成方式,但是客户端的数据最终还是要发送到服务端来进行统一的采集整合
- 部署apache服务的步骤:准备环境:关闭防火墙 :service iptables stop设置开机关闭防火墙:chkconfig ipt
- 单例模式是一个经典设计模式,简要的说,一个类的单例模式就是它只能被实例化一次,实例变量在第一次实例化时就已经固定。 在Python
- 这篇文章主要介绍了django-多对多表的创建和插入代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 1. 前言在执行一些 IO 密集型任务的时候,程序常常会因为等待 IO 而阻塞。比如在网络爬虫中,如果我们使用 requests 库来进行请
- 1.首先肯定是要安装Node.JSwindows cmd依次输入如下命令:cd C:\Program Files\nodejs\npm in
- 前言:Python是世界上最流行的解释型编程语言之一。Python 由 Guido van Rossum 设计,作为“ABC”编程语言的继承
- mysql的存储过程、游标 、事务实例详解下面是自己曾经编写过的mysql数据库存储过程,留作存档,以后用到的时候拿来参考。其中,涉及到了存
- base.html:{% extends "bootstrap/base.html" %}{% block styles
- Oracle过程和函数相信大家都比较了解,下面就为您详细介绍Oracle过程和函数二者之间的区别,希望可以让您对Oracle过程和函数有更深
- 预编译语句预编译语句是一种用于执行参数化SQL查询的技术,它可以提高性能并减少SQL注入的风险。预编译语句主要有以下优势:避免SQL注入攻击
- python中没有swich..case,若要实现一样的功能,又不想用if..elif来实现,可以充分利用字典进行实现主要是想要通过不同的k
- 本文实例讲述了JavaScript数据结构中串的表示与应用。分享给大家供大家参考,具体如下:类似于线性表的顺序存储结构,用一组地址连续的存储
- 开通QQ邮箱POP3/SMTP服务登录QQ邮箱网址,进入设置选择账户tab页翻到最低下开启此服务获取qq邮箱授权码搭建node接口服务思路创
- 质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。素数在数论中有着很重要的地位。比1大但不是素数的数称
- 关于 *args与**args的用法*args 和 **kwargs主要用于函数定义,你可以将不定数量的参数传递给某个函数。*args*ar
- 在使用操作XML文件时,我们可以使用Load方法直接加载xml文件即可,在ie和ff下通用。但是是XML字符串,则在两种浏览器下就会有所不同
- 方法一.Image { max-width:600px;height: