怎么理解大数据中x的n次幂函数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
编辑一个函数,计算x的n次幂。如:输入2.00000,10,输出9.26100。
虽然编程语言中都有现成的幂运算符号,但这道题目要求我们自己写一个完成该功能的函数。x的n次幂,就是n个x相乘,可以通过for循环实现该目的,时间复杂度为O(N),如何把时间复杂度降到O(logN),是该题重点。定义该函数为pow(x,n),如果要计算2的10次幂
(pow(2,10))
,相当于计算2的5次幂乘以2的5次幂
(pow(2,5)*pow(2,5))
,2的5次幂又等于2的2次幂乘以2的2次幂乘以2
(pow(2,2)*pow(2,2)*2),以此类推,发现这个问题可以用递归解决,并且每次只需要计算一半的数据,直到n为0作为递归的出口。这样就可以把时间复杂度降到O(logN)。每次计算一半的思想类似于二分法,二分法也是典型的时间复杂度为O(logN)的算法,因此
应建立O(logN)与二分法的思维关联
。 class Solution: def myPow(self, x: float, n: int) -> float: def pow(m): if m==0: return 1.0 else : tmp = pow(m//2) if m%2==0: return tmp*tmp else : return tmp*tmp*x if n>=0: return pow(n) else: return 1.0/pow(-n)
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注天达云行业资讯频道,感谢您对天达云的支持。