扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
问题:求 ,为了简化,假设x和n都是大于等于0的整数:
南县ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
一般来说 如果直接使用遍历的话,需要运行n次,记为:时间复杂度O(n), Python 实现如下:
返回结果1024是正确的,为了方便观察遍历运算了几次,我们把函数里添加一个计数的变量,每次遍历让他+1:
运行后会依次输出:10 20 30,符合时间复杂度是O(n)
现在来优化一下这个算法:
根据中小学学到的数学知识,我们可以了解到:
易得:
n为偶数时
n为奇数时
转化为Python,使用递归后 可以写出以下内容:
输出结果为:
该算法的时间复杂度为O( )
在python中就有内置函数pow函数表示幂的运算。
1、pow()函数Python的内置函数,它计算并返回x的y次方的值。
2、语法pow(x,y,z)
3、参数x--数值表达式。y--数值表达式。z--数值表达式。
4、返回值返回xy(x的y次方)的值。
5、pow()函数解释pow(x,y):表示x的y次幂。
Python标准库math中用来求幂运算的函数是pow(x,y)
pow(x,y)函数和x**y是等效的,都是计算x的y次方
用法:
import math
print(math.pow(4,2))
python中,想要表示a的b次方时,有两种方法:
1,math.pow()这个内置函数
2,**运算符
这两种方法效果是一样的,但是当
b为分数,a为负数:当幂运算符的底数为负数、幂为分数时,Python会抛出ValueError: negative number cannot be raised to a fractional power异常,
这时有两种方法可以解决此问题:
1,底数a正负均可不影响你的算法的话,加一个绝对值就行了即abs(a);
2,如果底数a必须是正、或必须是负的话,需要采用复数进行运算。因此凡是遇到幂为分数的项,都将底数用complex()转换为复数。
推荐学习《python教程》。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流