早教吧作业答案频道 -->数学-->
设计至少两种不同算法求解x的n次幂,分析各算法时间复杂度
题目详情
设计至少两种不同算法求解x的n次幂,分析各算法时间复杂度
▼优质解答
答案和解析
第一种:直接一个for循环将n个x相乘,时间复杂度明显是O(x)
第二种:利用递归(其实不是递归也行的),举例2^9,那个变成2^4 * 2^5,2^4变成2^2 * 2^2,此时2^2只需算一次,即是求x^n,若n是奇数,则x^(n/2) * x^((n+1)/2),若是偶数,则t=x^(n/2),t*t,并且可通过备忘录方法,即定义一个数组,每计一次,把其存进数组,如2^2=4,那么array[2]=4,因为array[2]可能会出现多次,所以使用递归前先看一看该数组位是否为0,是则正常递归,不是则直接用那个数据不用递归了.时间复杂度是O(logn)
第二种:利用递归(其实不是递归也行的),举例2^9,那个变成2^4 * 2^5,2^4变成2^2 * 2^2,此时2^2只需算一次,即是求x^n,若n是奇数,则x^(n/2) * x^((n+1)/2),若是偶数,则t=x^(n/2),t*t,并且可通过备忘录方法,即定义一个数组,每计一次,把其存进数组,如2^2=4,那么array[2]=4,因为array[2]可能会出现多次,所以使用递归前先看一看该数组位是否为0,是则正常递归,不是则直接用那个数据不用递归了.时间复杂度是O(logn)
看了设计至少两种不同算法求解x的n...的网友还看了以下:
已知x,y为有理数,如果规定一种运算"*",即x*y=xy+1,试根据这种运算完成下列各题.(1) 2020-04-09 …
几道简单的整式计算,尽量写清楚一点计算:(1-x)(0.6-x)(2x+y)(x-y)(2n+5) 2020-04-26 …
我这样算lim(x→0)1/x+lnx有什么问题呢?我这样用洛必达法则算lim(x→0)1/x+l 2020-06-03 …
解方程和算式X^2+X+1/(X^2+X)=2还有算式:根号1.5*根号(8/3)+(根号2-2) 2020-06-08 …
足球循环赛中甲对四比一胜乙队乙队二比一胜丙队丙队一比零胜甲队计算各队的净胜球数并根据净胜球数决定甲 2020-06-12 …
一、试用迭代法给出方程x^3-x-2=0,在2附近的五次迭代近似解,即由x.0=2算出x.5,精确 2020-06-22 …
计算Z=(X+2)^2+(X+3)^3+(X+4)^4+……+(X+N)^N,不使用运算符使用函数 2020-06-26 …
这个式子如何算x(x-1)(8-x)=60如何算出X的值关键是由x^3-9x^2-8x+60=0怎 2020-07-13 …
为了应用平方差公式计算(x-y+3)(x+y-3)必须先适当变形,下列各变形中正确的是()A.[( 2020-08-02 …
对于任意实数x、y,定义新运算“*”为x*y=x+y+xy,则()A.运算*满足交换律,但不满足结合 2020-11-19 …