你知道几种乘法的计算方式?

简介: 你知道几种乘法的计算方式?

前言

家里有本《算法详解》一直没有看,昨天晚上打开翻了翻,觉得写的挺有趣的,第一章讨论了一个大家都学过的内容,乘法的计算。大部分人计算乘法,应该都只有一种方式,乘法的计算,也算是一种算法,下面就一起探讨一下,乘法的几种计算方式吧。

x*y=5678x1234

小学乘法累加算法/长乘法

这种应该是大家都熟悉的计算方式,我们计算的时候,先计算5678x4,然后计算5678x3,然后5678x2,然后5678x1,最后再把结果的位数对齐,进行相加。如下:

Karatsuba乘法

  1. 计算a*c=56x12=672
  2. 计算b*d=78x34=2625
  3. 计算ad+bc=56x34+78x12=2840
  4. 把1的结果后面加4个0,3的结果后面加2个0,然后把123的结果相加
  5. 6720000+284000+2625=7006652

我找张图来说明一下为什么这样计算可行:

再用数学计算证明一下:

网格法

然后把格子里的所有数据都相加,得到最终结果7006652

目录
打赏
0
0
0
0
5
分享
相关文章
计算机数据的表示及运算
计算机数据的表示和运算是计算机系统中非常重要的概念。计算机使用二进制来表示和处理数据,其中包括整数、浮点数和字符等不同类型的数据。下面将详细介绍计算机数据的表示和运算。 1. 二进制表示:计算机使用二进制系统来表示数据。二进制系统由0和1两个数字组成,每一位称为一个比特(bit)。比特是计算机中最小的存储单位,可以表示一个二进制数值(0或1)。 2. 整数表示:计算机使用补码表示整数。补码是一种用于表示负数的方法,它将负数的最高位设为1,正数的最高位设为0。补码表示可以保证负数的运算结果仍然是有效的。 3. 浮点数表示:计算机使用浮点数表示实数。浮点数由两个部分组成:尾数和指数。尾数表示
261 0
|
5月前
实现加减乘除计算
【10月更文挑战第26天】实现加减乘除计算。
122 7
函数计算产品使用问题之如何并行运算函数计算任务,并对任务计算后的结果再进行聚合运算
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
Java基础语法运算和控制符(一)
Java基础语法运算和控制符(一)
120 0
Java基础语法运算和控制符(一)