首页 > 其他分享 >快速幂

快速幂

时间:2022-10-04 19:34:37浏览次数:42  
标签:myPow return double long quickPow ans 快速

1.递归

每次吧结果相乘

//递归快速幂 
double myPow(double x, long long n) {
        //x x2 x4 x8 x16*x
        if(n >= 0){
            return quickPow(x,n);
        }else{
			//n为负数情况 
            n=-n;
            return 1.0/quickPow(x,n);
        }
    }
double quickPow(double x,long n){
    if(n==0){
        return 1;
    }
    double t=myPow(x,n/2);
    if(n % 2 == 0){
        
        return t*t;
    }else{
        
        return t*t*x;
    }
}

2.迭代+位运算

//递推法
考虑吧n写成二进制,多项式推导之后发现
每次用x当前二进制位2的i次方

double myPow(double x, int n) {
    double ans=1;
    long N=n;
    if(N<0){
        N=-N;
        x=1.0/x;
    }
    while(N){
        if(N&1){
            ans=ans*x;
        }
        //每次x值都会再*x 但是当二进制位为0时 不会和结果相乘
        x=x*x;
        N>>=1;
    }
    return ans;
  } 

标签:myPow,return,double,long,quickPow,ans,快速
From: https://www.cnblogs.com/lwx11111/p/16754272.html

相关文章

  • 傅里叶变换以及快速傅里叶变换在雷达信号处理中的应用
    傅里叶变换应该是在大一或者大二的时候就开始接触了,一直对其都是一知半解的状态。不是很清楚到底是干啥的,想趁着国庆假期好好学习一下(主要是算法太难了,想换换心情,算法......
  • 快速排序算法
    快速排序(QuickSort)是对冒泡排序的一种改进,通过一趟排序将数据序列分成两部分,其中一部分的所有数据比另一部分的所有数据都要小,然后按此方法对两部分数据分别进行快速......
  • 快速准确地评估带宽
    网络质量提升的前提是网络没有发生拥塞,而为了防止发生网络拥塞,直播客户端就要有快速、准确地评估带宽的方法。在实时通信领域,有四种常见的带宽评估方法,分别是Goog-REMB、G......
  • 快速看懂前端在干啥!
    前言本文旨在帮助我的搭档快速看懂这些前端语言在讲什么东东。非常简略!!!!一、认识HTML基本结构有开就有合,例如<p>和</p>、<h1>和</h1>等。当然也有直接自闭合的例......
  • 快速排序-C语言实现
    快速排序排序思想1.选定Pivot中心轴2.将大于Pivot的数字放在Pivot的右边3.将小于Pivot的数字放在Pivot的左边4.分别对左右子序列(此时有左右2个子表),重复前三步操......
  • fast-data-dev 快速基于容器的kafka 环境
    fast-data-dev是由lensesio团队提供的一个快速部署kafka测试环境的工具包含的组件kafkazkschemaregistrykafkaconnect以及其他不少的connector参考资料http......
  • 快速排序 Java代码展示
    我们快速排序的图解放在下面,有一些重复的动作就省略。java代码如下:/***@author:阿久*快速排序*/publicclassSnackOrder{publicstaticvoidmain(Str......
  • vscode中快速声明数据类型
    如何快速声明数据类型上面这张图letobj1=reactive({listArr:[],backArr:[{name:'张三',age:10,info:'本科'}],age:100,name:'',flag:......
  • CPU--ALU逻辑单元--快速进位链
    加法器,电路逻辑实现,每一位对应相加,再加上低位来的进位;进位是运算速度的瓶颈;进位链:传送进位的链路;串行进位链:串行进位,与非门实现,从后往前,电路简单;......
  • python 如何快速配置pip加速
    相关地址PyPI镜像使用帮助https://mirrors.tuna.tsinghua.edu.cn/help/pypi/使用清华镜像源加速0.打开cmd1.输入pipconfigsetglobal.index-urlhttps://pypi.tun......