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

承德网站制作的流程易货小程序开发教程

承德网站制作的流程,易货小程序开发教程,wordpress支付方案解决,政协网站法治建设文章目录1. 快速幂2. 龟速乘3. 快速幂取模4. 龟速乘取模5. 快速幂取模优化1. 快速幂 算法原理: 计算 311: 311 (35)2 x 335 (32)2 x 332 3 x 3仅需计算 3 次,而非 11 次 计算 310: 310 (35)235 (32)2 x 332 3 x 3仅需计算…

文章目录

    • 1. 快速幂
    • 2. 龟速乘
    • 3. 快速幂取模
    • 4. 龟速乘取模
    • 5. 快速幂取模优化

1. 快速幂

算法原理:

  • 计算 311
    • 311 = (35)2 x 3
    • 35 = (32)2 x 3
    • 32 = 3 x 3
    • 仅需计算 3 次,而非 11 次
  • 计算 310
    • 310 = (35)2
    • 35 = (32)2 x 3
    • 32 = 3 x 3
    • 仅需计算 3 次,而非 10 次

算法思路:

  • 若指数是偶数,则将底数平方,指数除以 2。
  • 若指数是奇数,则将底数平方,指数除以 2,再乘上底数。

算法代码:

typedef unsigned long long uLL;// 快速幂 a^b
uLL power (uLL a, uLL b){uLL r = 1;while (b != 0){if (b & 1) 	// (b % 2 == 1)r = r * a;b = b >> 1; // (b = b / 2)a = a * a;}return r;
}

举例:

  • 初始值:a = 3,b = 11
  • 第 1 轮:(11 % 2 == 1)r=1x3=3,b=5,a=32=9
  • 第 2 轮:(5 % 2 == 1)r=3x32=33=27,b=2,a=(32)2=34=81
  • 第 3 轮:(2 % 2 == 0)r 不变,b=1,a=(34)2=38
  • 第 4 轮:(1 % 2 == 1)r=33x38=311,b=0,a=(38)2=316
  • 得到 r = 33x38 = 311

2. 龟速乘

算法原理:将其中一个乘数分解成 2 的幂次相加。

12 x a = 23 x a + 21 x a

算法代码:

typedef unsigned long long uLL;// 龟速乘 a*b
uLL mul (uLL a, uLL b){uLL r = 0;while (b != 0){if (b & 1) 	// (b % 2 == 1)r = r + a;b = b >> 1; // (b = b / 2)a = a + a;}return r;
}

3. 快速幂取模

初等数论中有如下公式:

(a × b) % m = ((a % m) × (b % m)) % m

推广:

(a × b × c…) % m = ((a % m) × (b % m) × (c % m) × … ) % m

(ab) % m = (a × a × a…) % m = ((a % m) × (a % m) × (a % m) × … ) % m

算法代码:

typedef unsigned long long uLL;// 快速幂取模 (a^b) % p
uLL powerMod (uLL a, uLL b, uLL p){uLL r = 1;while (b != 0){if (b & 1) 	// (b % 2 == 1)r = (r * a) % p;b = b >> 1; // (b = b / 2)a = (a * a) % p;}return r;
}

4. 龟速乘取模

算法原理:(a × b) % m = ((a % m) × (b % m)) % m

算法代码:

// 龟速乘取模 (a*b) % p
uLL mulMod (uLL a, uLL b, uLL p){uLL r = 0;while (b != 0){if (b & 1) 	// (b % 2 == 1)r = (r + a) % p;b = b >> 1; // (b = b / 2)a = (a + a) % p;}return r;
}

5. 快速幂取模优化

算法原理:注意到快速幂取模算法中的相乘操作可能会超出数据范围,因此可以将相乘操作转化为龟速乘取模。

原理依然是此公式:(a × b) % m = ((a % m) × (b % m)) % m,其中((a % m) × (b % m))即为龟速乘取模。

算法思路:快速幂 + 龟速乘结合。

// 快速幂取模防止爆炸 (a^b) % p
uLL powerModBig (uLL a, uLL b, uLL p){uLL r = 1;while (b != 0){if (b & 1) 	// (b % 2 == 1)r = mulMod(a, b, p) % p;b = b >> 1; // (b = b / 2)a = mulMod(a, a, p) % p;}return r;
}
http://www.yayakq.cn/news/947924/

相关文章:

  • 做的视频传到哪个网站好青春网站建设工作室
  • 湖北 商城网站建设多少钱沈阳网站建设21anshan
  • 酒店家具网站源码网站班级文化建设
  • 中企动力做网站一次性付款成都定制公交app
  • 生产建设网站基坑开挖深度建站系统推荐
  • 网站页面分析范文网站建设运维策划
  • 网站开发基于什么平台网络营销策划书的主要内容
  • 无锡市住房与城乡建设网站把插钉机子拍下怎么做网站
  • 辽宁省建设厅网站网站变黑白代码
  • 网站优化注意事项百度下载免费安装最新版
  • 做母婴的网站物联网服务平台
  • Net网站开发招聘贵阳百度推广电话
  • 温县网站建设wordpress会员查看
  • 网站开发项目个人总结wordpress 5编辑器使用教程
  • 做网站客户iis编辑网站绑定
  • 做暧暧国外网站网站能不能自己做
  • 熵网站网络程序设计学什么
  • 网站手机版怎么制作2022年seo还值得做吗
  • 爱奇艺做视频网站的前端开发语言有哪些
  • 内蒙古住房与建设厅网站有一个网站专门做民宿
  • 公司做网站的费用怎么做账定制一个企业网站多少钱
  • 中国做水产的有什么网站集团公司网站推广方案怎么做
  • 电商网站建设那家好南宁网站建设推广优化
  • 榆林市城乡建设规划局网站张家界seo优化方案
  • 清风网站建设重庆市建设工程信息网官网安全监督管理平台
  • 创造网站需要多少钱app下载汅api免费下载大全视频
  • 做菠菜网站有没有被骗的怎么查询公司是不是中小企业
  • 网站的制作视频拼多多免费推广软件
  • 郑州新闻发布会无锡百度搜索排名优化
  • 网站开发师是做什么的建设微网站的特色