美文网首页
大数相乘

大数相乘

作者: areece | 来源:发表于2019-09-27 13:51 被阅读0次

两个大数相乘,这两个大数分别是a和b,现在分割成两部分,每一部分都是N位,假设是10进制的,其实对于2进制也同样适用。
a = (a_0 * 10^N + a_1)
b = (b_0 * 10 ^N + b_1)
a * b = a_0 * b_0 * 10^{2N} + a_1 * b_1 + (a_0 * b_1 + a_1 * b_0) * 10^N
大数乘法能够减少运算量,在于
(a_0 + a_1) * (b_0 + b_1) = a_0*b_0 + a_1*b_1 + (a_0*b_1 + a1 * b_0)
所以现在只用算三个乘法式,再加上一点加减运算,就可以了。
k_1 = a_0 * b_0, k_2 = a_1 * b_1, k_3 = (a_0 + a_1) * (b_0 + b_1) - k_1 - k_2
整个计算结果就是
a*b = k_1 * 10 ^ {2N} + k_2 + k_3 * 10 ^ N

相关文章

  • 大数相乘--golang简单实现

    大数乘法之golang实现所谓大数相乘(Multiplication algorithm),就是指数字比较大,相乘...

  • 大数相乘

    所谓大数相乘(Multiplication algorithm),就是指数字比较大,相乘的结果超出了基本类型的表示...

  • 大数相乘

  • 大数相乘

    两个大数相乘,这两个大数分别是a和b,现在分割成两部分,每一部分都是N位,假设是10进制的,其实对于2进制也同样适...

  • 大数相乘

  • 大数相乘

    别忘了把字符串反转便于求导,还有去除前面的0的时候别忘了结果本来就为0的情况,两个数相乘最长长度为len1+len2。

  • 大数相乘

    给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示...

  • 小算法集锦 : 20行代码实现大数相乘

    1.大数相乘 1.1 js 版本 (不计算注释只需要20行) 1.2 C语言 大数相乘 无依赖 简单的 js 转...

  • 大数相乘算法

    1、计算两个大数相乘的结果。2、算法流程:(1)大数可能超出任何一种整数类型,会引发溢出问题,所以用字符串的格式存...

  • 大数相乘-算法

    参考文章 题目 思路 例如:计算98×21,步骤如下 Objective-C 版 swift 版 待更新

网友评论

      本文标题:大数相乘

      本文链接:https://www.haomeiwen.com/subject/pazouctx.html