算法设计与分析(第四周)大整数相乘 分治法【不能解决溢出问题】
思路
二进制
分成两半,先算左边,再算右边
结果:
2344344 110101
直接相乘:258114618744
优化算法:258114618744
请按任意键继续. . .
代码
同理写了一个十进制算法,如下:
代码只是模拟,不是实际运算过程
此算法不能解决溢出问题,只能降低时间复杂度
没有解决奇数位数问题
#include<iostream>
#include<math.h>
#define DIGIT 6//两个DIGIT位十进制大整数乘法运算using namespace std;int main()
{long long int num1;long long int num2;cin >> num1 >> num2;long long int num1Left, num1Right;long long int num2Left, num2Right;num1Left = num1 / pow(10, DIGIT / 2);//Anum1Right = num1 - num1Left * pow(10, DIGIT / 2);//Bnum2Left = num2 / pow(10, DIGIT / 2);//Cnum2Right = num2 - num2Left * pow(10, DIGIT / 2);//Dlong long int res;//XY = AC 2n + ((A - B)(D - C) + AC + BD) 2n / 2 + BDlong long int AC = num1Left * num2Left;long long int BD = num1Right * num2Right;res = AC * pow(10, DIGIT) + ((num1Left - num1Right)*(num2Right - num2Left) + AC + BD)*pow(10, DIGIT / 2) + BD;cout << "直接相乘:" << num1 * num2 << endl;cout << "优化算法:" << res << endl;system("pause");
}
算法设计与分析(第四周)大整数相乘 分治法【不能解决溢出问题】相关推荐
- Cryp.1.大整数相乘---分治法
from:2017 CCF计算机课程改革导教班. 陈道蓄 11 大整数相乘 – 比长乘更快 小学里就教过整数乘的算法.要计算两个正整数a,b的乘积,你用b中每一位依次乘a,并将结果逐行排列,按b的相应 ...
- 大整数相乘 + 分治法(JS)
使用分治法来实现大整数相乘 相乘的基本原理 如: 1234 * 567 第一步:分解234 -> 12 和 34;567 -> 5 和 67; 第二步:分别计算 首部: 12*5=60中部 ...
- 天津理工大学研究生学位课《算法设计与分析》期末大作业
2022- 2023学年度第一学期 研究生学位课< 算法设计与分析 > 期末大作业 2022级电子信息天理研究生 一.简答题 1.若,写出用Θ.Ω和О描述f(n) 的渐进表达.(7分) 答 ...
- 算法设计与分析——分治与递归——整数划分问题
将正整数n表示为一系列正整数之和, n=n1+n2+n3+n4+......+nk (其中,n1>=n2>=n3>=n4........>=nk>0,k>=1) 正 ...
- 分治法大整数乘法c语言,大整数乘法(分治法)
#include #include using namespace std; int num(int u) //计算乘数的位数 { int i,num; i=1; num=u/10; while(nu ...
- 分治法的经典问题——大整数相乘
分治法的经典问题--大整数相乘 分治法的原理 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同.求出子问题的解,就可得到原问题的解.即一种分目标 ...
- 算法设计与分析——递归与分治策略——全排列
算法设计与分析--递归与分治策略--全排列 全排列问题的解决是通过分治与递归思想来解决的 首先判断是否递归到了最后一位,如果递归到了最后一位,则输出他当前的全排列序列. 如果没有到达最后一位,则循环的 ...
- 哈工大2020秋算法设计与分析大作业(一)
哈工大2020秋算法设计与分析大作业(一) 前言 正文 1 论文题目 标题 作者 刊物 2 论文阅读报告 2.1 摘要 2.2 问题定义 2.3 算法或证明过程 2.4 实验结论 哈工大2020秋算法 ...
- 算法设计与分析——十大经典排序算法二(6--10)
一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055@qq.com Time of completion:2023.3.1 Las ...
最新文章
- JavaScript 开发者数量暴涨、C# 超越 PHP,揭晓全球开发最新趋势!
- 阿里云API网关相关操作
- 09、redis哨兵的多个核心底层原理的深入解析(包含slave选举算法)
- 程序猿的英语之ielts indicator speaking test
- java rsa 公钥加密_java – 使用公钥进行RSA解密
- 实战系列-HashMap深入剖析
- java集合课程,I学霸官方免费课程三十三:Java集合框架之Map集合
- asp.net 获取IP地理位置的几个主要接口
- php查看加载的配置文件路径,thinkphp5.0 配置文件加载路径说明
- jquery插件(转)
- Raki的网络流24题题解总结
- origin数据平滑_Origin平滑曲线的使用方法
- pythoneducoder苹果梨子煮水的功效_【苹果和梨煮水的功效】_同梨煮水_作用-大众养生网...
- 推荐系统——用户画像
- linux增加elk用户,在Ubuntu 18.04 Bionic Beaver Linux上安装ELK
- AcWing Round #14
- GT性能测试Android版使用说明
- 【Git】回退单个文件到指定版本
- 分享74个ASP整站程序源码,总有一款适合您
- ls -l 字段意思
热门文章
- php mysql 连接方法 对比_Mysql实例php连接MySQL的两种方式对比
- 视音频数据处理入门:UDP-RTP协议解析
- C++中的指针与引用
- Kafka消息格式中的变长字段(Varints)
- 设计模式:责任链模式(Chain of Responsibility)
- 苹果亚马逊同一天公布无损音质服务、 Google与Flutter、Snap 的 AR 战事等|Decode the Week...
- YouTube高效传输策略:节省14%带宽 用户体验提升
- 动态优化器—一种感知视频编码优化框架
- JVM之垃圾收集机制四种GC算法详解
- 腾讯技术直播间 | 轻量产品思维!手把手教你搭建在线甲醛监测系统