长沙seo公司网站优化,网站缓存优化怎么做,淘客网站怎么做首页,中山建设监理有限公司 网站戳蓝字“CSDN云计算”关注我们哦#xff01;前一段时间#xff0c;小灰发布了一篇有关大整数相加的漫画#xff0c;没看过的小伙伴可以先看一看#xff1a;漫画#xff1a;如何实现大整数相加#xff1f;那么#xff0c;大整数相乘又是如何实现的呢#xff1f;起初前一段时间小灰发布了一篇有关大整数相加的漫画没看过的小伙伴可以先看一看漫画如何实现大整数相加那么大整数相乘又是如何实现的呢起初小灰认为只要按照大整数相加的思路稍微做一下变形就可以轻松实现大整数相乘。但是随着深入的学习小灰才发现事情并没有那么简单......————— 第二天 —————怎样列出这个乘法竖式呢以 93281 X 2034 为例竖式如下在程序中我们可以利用int型数组把两个大整数按位进行存储再把数组中的元素像小学竖式那样逐个进行计算。这个乘法竖式的计算过程可以大体分为两步1.整数B的每一个数位和整数A所有数位依次相乘得到中间结果。2.所有中间结果相加得到最终结果。/** * 大整数求乘积 * param bigNumberA 大整数A * param bigNumberB 大整数B */public static String multiply(String bigNumberA, String bigNumberB) { //1.把两个大整数用数组逆序存储数组长度等于两整数长度之和 int lengthA bigNumberA.length(); int lengthB bigNumberB.length(); int[] arrayA new int[lengthA]; for(int i0; i lengthA; i){ arrayA[i] bigNumberA.charAt(lengthA-1-i) - 0; } int[] arrayB new int[lengthB]; for(int i0; i lengthB; i){ arrayB[i] bigNumberB.charAt(lengthB-1-i) - 0; } //2.构建result数组数组长度等于两整数长度之和 int[] result new int[lengthAlengthB]; //3.嵌套循环整数B的每一位依次和整数A的所有数位相乘并把结果累加 for(int i0;ilengthB;i) { for(int j0;jlengthA;j) { //整数B的某一位和整数A的某一位相乘 result[ij] arrayB[i]*arrayA[j]; //如果result某一位大于10则进位进位数量是该位除以10的商 if(result[ij] 10){ result[ij1] result[ij]/10; result[ij] result[ij]%10; } } } //4.把result数组再次逆序并转成String StringBuilder sb new StringBuilder(); //是否找到大整数的最高有效位 boolean findFirst false; for (int i result.length - 1; i 0; i--) { if(!findFirst){ if(result[i] 0){ continue; } findFirst true; } sb.append(result[i]); } return sb.toString();}public static void main(String[] args) { String x 3338429042340042304302404; String y 12303231; System.out.println(multiply(x, y));}————————————下面我们的推导会有一些烧脑请大家坐稳扶好~~大整数从高位到低位被平分成了两部分。设整数1的高位部分是A低位部分是B整数2的高位部分是C低位部分是D那么有如下等式如果把大整数的长度抽象为n那么因此整数1与整数2 的乘积可以写成下面的形式如此一来原本长度为n的大整数的1次乘积被转化成了长度为n/2的大整数的4次乘积ACADBCBD。什么是master定理呢master定理的英语名称是master theorem它为许多由分治法得到的递推关系式提供了渐进时间复杂度分析。设常数a 1b 1如果一个算法的整体计算规模 T(n) a T(n / b) f(n)那么则有如下规律假设两个长度为n的大整数相乘整体运算规模是T(n) 。根据刚才得到的结论两个大整数相乘被拆分成四个较小的乘积所以在第一次分治时T(n)和T(n/2)有如下关系T(n) 4T(n/2) f(n)其中f(n)是4个乘积结果相加的运算规模f(n)的渐进时间复杂度很明显是O(n)。把这个关系带入到master定理的公式 T(n) a T(n / b) f(n) 当中此时 a4 b2。此时把a和b的值以及f(n)的时间复杂度带入到master定理的第一个规律也就是下面的规律发现正好符合条件。怎么符合呢推导过程如下所以我们的平均时间复杂度是—————END—————1.微信群添加小编微信color_ld备注“进群姓名公司职位”即可加入【云计算学习交流群】和志同道合的朋友们共同打卡学习2.征稿投稿邮箱liudancsdn.net微信号color_ld。请备注投稿姓名公司职位。推荐阅读细数华为核心技术家底华为真会被击垮吗如何使用 Lucene 做网站高亮搜索功能20张图表达程序员的心酸一个程序员父亲的呼吁不要教你的孩子从小学编程Python | 7招教你识别一个网站是否是Django后台月薪 50K 大牛整理6 张 Python 图谱看完茅塞顿开程序人生公众号是CSDN旗下有影响力的开发者自媒体之一。这是一个以程序员日常工作和生活紧密相关且垂直服务于程序员群体的自媒体平台扫描关注吧~↓点击“阅读原文”打开APP 阅读更顺畅