当前位置: 首页 > wzjs >正文

软件技术的发展前景重庆seo外包平台

软件技术的发展前景,重庆seo外包平台,个人怎么做购物网站,网站制作参考其他网站会侵权吗倍增,顾名思义就是翻倍。它能够使线性的处理转化为对数级的处理,极⼤地优化时间复杂度 P1226 【模板】快速幂 - 洛谷 利⽤「⼆进制」以及「倍增」的思想,通过⼀个具体的例⼦说明,⽐如 3 11 3^{11} 311 幂运算的运算法则&#x…

倍增,顾名思义就是翻倍。它能够使线性的处理转化为对数级的处理,极⼤地优化时间复杂度

P1226 【模板】快速幂 - 洛谷

利⽤「⼆进制」以及「倍增」的思想,通过⼀个具体的例⼦说明,⽐如 3 11 3^{11} 311

  • 幂运算的运算法则: a b + c = a b × a c a^{b+c}=a^{b} \times a^{c} ab+c=ab×ac
  • 通过⼀个数的⼆进制表⽰,可以写成若⼲数相加
    11 = ( 1011 ) 2 = 1 × 2 3 + 0 × 2 2 + 1 × 2 1 + 1 × 2 0 11=(1011)_{2}=1 \times 2^{3} +0 \times 2^{2} + 1 \times 2^{1}+1 \times 2^{0} 11=(1011)2=1×23+0×22+1×21+1×20
  • 两者结合:
    3 11 = 3 ( 1011 ) 2 = 3 1 × 2 3 + 0 × 2 2 + 1 × 2 1 + 1 × 2 0 = 3 8 × 3 0 × 3 2 × 3 1 3^{11}=3^{(1011)_{2}}=3^{1\times 2^{3}+0 \times 2^{2} + 1 \times 2^{1}+1 \times 2^{0}}=3^{8}\times3^{0} \times 3^{2} \times 3^{1} 311=3(1011)2=31×23+0×22+1×21+1×20=38×30×32×31

如何快速算出 3 1 , 3 2 . . 3 log ⁡ 2 n 3^{1}, 3^{2} .. 3^{\log_{2}n} 31,32..3log2n
其实很简单,从前往后看,后⼀个数是前⼀个数的平⽅
3 1 = 3 3^{1} = 3 31=3
3 2 = 3 1 × 3 1 = 9 3^{2}=3^{1} \times 3^{1} = 9 32=31×31=9
3 4 = 3 2 × 3 2 = 81 3^{4}=3^{2} \times 3^{2} = 81 34=32×32=81
3 8 = 3 4 × 3 4 = 6561 3^{8}=3^{4} \times 3^{4} = 6561 38=34×34=6561
只需将11的⼆进制表⽰中1 所对应的幂乘起来即可

如何实现这个算法,以 a b a^{b} ab为例

  • ⼀边提取b 的⼆进制表⽰中的每⼀位
  • ⼀边让a = a ∗ a ,不断变成之前的平⽅(倍增的思想)
  • 在提取b 的⼆进制表⽰时,如果这⼀位是1 ,就乘上对应位置的权值

取模运算的规则:

  1. 在计算过程中,只有加法和乘法时,如果最后要对整个结果取模,取模可以放在任意的位置
  2. 在计算过程中,存在减法时,结果可能出现负数,此时如果需要补正,就需要模加模的技巧来补正
  3. 在计算过程中,存在除法的时候,过程中取模是会出现错误的,需要求逆元
#include <bits/stdc++.h>
using namespace std;typedef long long LL;
LL a, b, p;LL qpow(LL a, LL b, LL p)
{LL ret = 1;while (b){if (b & 1) ret = ret * a % p;a = a * a % p;b >>= 1;}return ret;
}int main()
{cin >> a >> b >> p;printf("%lld^%lld mod %lld=%lld", a, b, p, qpow(a, b, p));return 0;
}
P10446 64位整数乘法 - 洛谷

跟「快速幂」的思想⼀致,我们通过⼀个具体的例⼦模拟⼀下算法的流程,⽐如3 × 11

  • 乘法的分配率: a × ( b + c ) = a × b + a × c a × (b + c) = a × b + a × c a×(b+c)=a×b+a×c
  • 通过⼀个数的⼆进制表⽰,可以写成若⼲数相加
    11 = ( 1011 ) 2 = 1 × 2 3 + 0 × 2 2 + 1 × 2 1 + 1 × 2 0 11 = (1011)_{2}=1 × 2^{3}+ 0 × 2^{2} +1 × 2^{1}+1×2^{0} 11=(1011)2=1×23+0×22+1×21+1×20
  • 两者结合:
    3 × 11 = 3 × ( 1 × 2 3 + 0 × 2 2 + 1 × 2 1 + 1 × 2 0 ) = 3 × 8 + 3 × 0 + 3 × 2 + 3 × 1 3 × 11=3× (1 × 2^{3}+ 0 × 2^{2} +1 × 2^{1}+1×2^{0})=3 × 8+3×0+3×2+3×1 3×11=3×(1×23+0×22+1×21+1×20)=3×8+3×0+3×2+3×1

如何实现这个算法呢,以a × b 为例

  • ⼀边提取b 的⼆进制表⽰中的每⼀位;
  • ⼀边让a = a + a ,不断变成之前的两倍(倍增的思想);
  • 在提取b 的⼆进制表⽰时,如果这⼀位是1 ,就加上对应位置的权值
#include <bits/stdc++.h>
using namespace std;typedef long long LL;
LL a, b, p;LL qmul(LL a, LL b, LL p)
{LL sum = 0;while (b){if (b & 1) sum = (sum + a) % p;a = (a + a) % p;b >>= 1;        }return sum;
}int main()
{cin >> a >> b >> p;cout << qmul(a, b, p) << endl;return 0;
}
http://www.dtcms.com/wzjs/265534.html

相关文章:

  • 注册科技有限公司可以做网站吗网站排名怎么搜索靠前
  • 公司做网站需要提供的材料百度竞价开户哪家好
  • 伊宁市做网站怎么快速优化网站
  • 甘肃高端建设网站网站如何做关键词优化
  • 电商小程序开发需要多少钱债务优化是什么意思
  • 网站上资源截图怎么做最能打动顾客的十句话
  • 杯子电子商务网站的建设sem优化托管公司
  • 做兼职网站设计网站seo源码
  • 营销型企业网站建设方案淘宝网店运营
  • 手机网站自适应自媒体平台收益排行榜
  • 开题报告电子商务网站建设东莞网站建设公司
  • 制做网站首先应该怎么做网络舆情分析
  • 微网站建设公司哪家好教育培训机构前十名
  • 上海专业网站制作公司磁力bt种子搜索神器
  • 做网站宁波有什么的网络公司百度seo快速排名
  • 国外英文网站东莞seo技术培训
  • 廊坊建设局网站6抖音权重查询工具
  • wordpress 菜单管理抖音搜索seo软件
  • wordpress中文备份插件谷歌seo和百度seo区别
  • 建设网站工作内容西安企业seo外包服务公司
  • 电影采集网站怎么做优化网哪个牌子好
  • 思源黑体做网站代刷网站推广链接免费
  • 维修网站源码网络营销成功的案例及其原因
  • 网站中医建设5g站长工具查询
  • 做网站按钮广告联盟怎么赚钱
  • 网站建设烟台沈阳网络优化培训
  • 叫别人做网站后怎么更改密码各网站收录
  • 杭州房价暴跌已开始重庆网站优化软件
  • 正规网站建设空间哪个好鞍山做网站的公司
  • 网站建设综合实训心得体会淘宝怎么设置关键词搜索