程序设计综合实践教学课件2-2 分治法.pptxVIP

  • 0
  • 0
  • 约5.2千字
  • 约 16页
  • 2021-10-13 发布于安徽
  • 举报

程序设计综合实践教学课件2-2 分治法.pptx

二、分治法;分治法一般可以用递归描述,包含以下三个部分: 基础:若问题规模足够小,无法或没有必要继续分解时,很容易直接求解,这是递归必须的基础。 分解:将规模较大的复杂问题分解为若干个规模缩小、相互独立、与原问题类型相同的子问题,类型相同的子问题可以递归求解。 合并:将各个子问题的解合并为原问题的解。 分治法的难点或关键点在于如何分解问题和合并各子问题的解。前面汉诺塔问题求解算法体现了分治法算法设计思想,下面再以无符号大数乘法为例讲述分治法。;2.1无符号大数Karatsuba乘法 对于无符号大数乘法,我们可以用分治法按照传统的思路求解两个无符号大数X、Y乘积: 基础: 当Y是个位数时,X乘Y可以简单解决,用下述表示: UBigNumber MultiplyDigit (X, digit);//digit:0~9 分解: 从低位到高位,将Y中每一位数字分解出来后,再与X相乘; 合并: 将上述分解后相乘结果依次放大 ...后相加求和就是需要的结果,等价于从低位到高位,将Y中每一位数字分解出来后,再与X放大 ...倍后的结果相乘,再把乘积累加。;形成如下算法描述,抽象数据类型UBigNumber表示无符号大数: //算法2.2 返回无符号大数X、Y的乘积 UBigNumber

文档评论(0)

1亿VIP精品文档

相关文档