python开n次方函数怎么写,python开n次方根

  python开n次方函数怎么写,python开n次方根

  求n次方leetcode50. Pow(x, n)

  实现pow(x,n),即计算x的n次方函数。

  示例1:

  输入:2.00000,10

  产量:1024.00000

  示例2:

  输入:2.10000,3

  产量:9.26100

  示例3:

  输入:2.00000,-2

  产量:0.25000

  解释:2-2=1/22=1/4=0.25

  描述:

  -100.0 x 100.0n是32位有符号整数,其数值范围为[231,231 1]。资料来源:LeetCode

  链接:https://leetcode-cn.com/problems/powx-n

  版权归领网所有。商业转载请联系官方授权,非商业转载请注明出处。

  class Solution(object):def myPow(self,x,N): :type x:float:type N:int:rtype:float # recursion # if N==0:# return 1 # IFN 0:# return self . myPow(1/x,-N)# if N==1:# return x # if N % 2==0:# return self . myPow(x,N//2)# else:# return x * self . myPow(x, N//2) #迭代if n 0: x=1/x n=-n if n==0:返回1 res=1 while n:if n % 2==0:x *=x n/=2 else:RES *=x n-=1返回RES求n的根实现pow(x,n其中x大于0,n为大于1的整数。

  解法:二分法求开方

  想法是逐渐接近目标值。以x大于1为例:

  设置结果范围为[低,高],其中低=0,高=x,假设结果为r=(低高)/2;如果r的n次方大于x,说明r更大,低重新定义不变,高=r,r=(低高)/2;如果r的n次方小于x,说明r小。重新定义低=r,高不变,r=(低高)/2;class root(object):def my _ root(self,x,n): params: x为根号,n为根号 # x 0,不考虑复数if x 1: low,high=0,else: low,high=x,1 while true:tmp=(low high)/2 judge=1 for I in range(n):judge *=tmpif x 1 and judge x:# if x 1,对于当前数jugde if x, 不需要计算break if x 1和judge x: # If x 1,对于当前数judge if x不需要计算break If ABS(judge-x)0.00000001:print(pow(x,1/n))# power()方法计算的结果返回tmpelse:If judge x:high=tmpelif judge x:low=tmp参考文献:https://www.cnblogs.com/anzhengyu/p/11185603.html

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: