本文主要讲解“如何用python实现指数运算”。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习如何用python实现指数运算。
这个题目很简单,就是实现一个指数运算方法,但是对递归次数和运算时间有限制。
指数运算,即幂(x,n),其中x可以是浮点数。如果x的输入为2.000,n的输入为10,将返回1024.000。其中指数n可以是负的。
输入: 2.00000,10
输出: 1024.00000
其实python默认内置的指数计算符号是* *,比如上面是2.000 * * 10;即使是直接用return x**n提交,也通过了,速度快于62%的时间。
当然,想想也不太好。想一想,产品一个个的直接计算,一定要超出运营效率的约束。你可以用二分法,比如幂(x,n)。如果n为偶数,则可分为幂(x,n/2) *幂(x,n/2)。如果n不是偶数,就乘以x,其他的都是偶数。然后采用缓存字典的方法来避免重复计算。
在后来的计算中,发现每次(x,n)计算不同时,测试系统都不会创建新的对象来刷新缓存字典,这导致第二个(x,n)使用第一个缓存字典。因此,字典每次是新的(x,n)都会被缓存。
提交后发现比提交答案的87%都快。与python自带的n**x相比,它也更快。
代码如下:
类别解决方案:
cacheDict={}
defmyRecursion(self,x,n):
IFN self . cachedict . keys():
returnself.cacheDict[n]
ifn%2==1:
product re=self . myre version(x,(n-1)/2)* self . myre version(x,(n-1)/2)*x
else:
productRe=self . myre version(x,n/2)* self . myre version(x,n/2)
self . cachedict[n]=ProducRe
returnproductRe
defmyPow(self,x,n)-float:
ifn0:
self.cacheDict={0:1,1:1/x}
return self . MyResurversion(1.0/x,abs(n))
else:
self.cacheDict={0:1,1:x}
回归自我。我的循环(x,n)在这里。相信大家对“如何用python实现指数运算”有了更深的理解。让我们在实践中去做吧!这是网站。更多相关内容,可以进入相关渠道查询,关注我们,继续学习!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/67432.html