怎么理解大数据中x的n次幂函数

怎么理解大数据中x的n次幂函数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。


1

 题目描述

编辑一个函数,计算x的n次幂。如:输入2.00000,10,输出9.26100。

2

 题解

虽然编程语言中都有现成的幂运算符号,但这道题目要求我们自己写一个完成该功能的函数。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)

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对亿速云的支持。