- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch09 代数与数值算法
第九章;特点;求幂运算;另一种归纳方法:nk=(nk/2)2,将问题归约成输入参数为n和k/2的问题。将k的值减小一半对应于将其规模减小一个常数值,故乘法次数和k的规模成线性关系。
如果k是偶数,就简单地对参数为k/2的问题的解进行平方;如果k是奇数,则将参数为(k-1)/2的问题的解平方后再乘以n。所以,乘法的运算量至多为2log2k。
Algorithm Power_by_Repeated_Squaring(n,k)
Input: n and k (two positive integers)
Output: P (the value of nk )
begin
if k=1 then P:=n;
else
z:=Power_by_Repeated_Squaring(n, k div 2);
if k mod 2=0 then
P:=z*z
else
P:=n*z*z
end;最大公约数;Algorithm GCD(m,n)
Input: m and n (two positive integers)
Output: gcd (the gcd of m and n)
begin
a:=max(n,m);
b:=min(n,m);
r:=1;
while r0 do {r is the remainder}
r:=a mod b;
a:=b;
b:=r;
gcd:=a
end;多项式乘法;;矩阵乘法;递归形式;Strassen算法;算法对比;布尔矩阵;第一个思想;第二个思想;设Ci=AiBi,其第j行是若干Bi行的布尔和(根据Ai的第j行)。这里并不直接计算Ci的每一行,而是使用类似于前述算法中所使用的方法,即预先计算所有的可能性。由于Ai每行中有k个元素,所以Bi行的各种可能组合一共有2k种。令k=log2n并再一次假定k是一个整数,预先计算所有2k=2^{log2n}=n种组合,然后将结果存储在一个表中。相比于先前的算法,该表包含n行而不是n比特;因此,存储空间需要O(n2)。此外,由于该表还依赖于Bi,所以必须为每一个Bi均建立起与之对应的表。为了寻找Ci的第j行,检索Ai的第j行并找到需要相加的Bi行组合。Ai第j行的二进制表示所对应的整数可以代表这样的组合,这个整数是Ci第j行在表中的存储地址。在表中寻找到Ci中的一行需要花费O(1)时间,而将这一行复制到Ci中适合位置需要花费O(n)时间。综上,可以在时间O(n2)内计算Ci。;现在说明可以在时间O(n2k)内计算Bi行之和的各种可能组合
归纳基础:计算对应于0的行之和是显然可行的。
归纳假设:知道如何计算对应小于i的整数的行之和组合。
首先,假定i-1的二进制表示为xxxx011111(即最低位的0后继j个1),那么对应于i的行之和等于对应于xxxx000000的行之和加上对应于00001000000的行之和。由于xxxx000000小于i,根据归纳假设可以得到其所对应的行之和,现在只需要再添加一行即可,添加一行需要进行n次布尔加法运算,且总共有2k种组合。因此,所有的预先计算均可以通过O(n2k)次运算完成。若k=log2n,则运行时间为O(n2)。;Algorithm Boolean_Matrix_Multiplication(A,B,n,k)
Input: A, B (two n*n Boolean matrices), and k (an integer, and k divides n for simplicity)
Output: C (the product of A and B)
begin
Initialize the matrix C to 0
for i:=0 to n/k-1 do
Construct Tablei;
{Tablei is an 2^k array of Boolean vectors of size n which contains all possible combinations of sums of k rows of Bi}
m:=i*k;
for j=1 to n do
Let Addr be the k-bit number A[j,m+1]A[j,m+2]...A[j,m+k];
add Tablei[Addr] to row j in C
end;O(n3/log2n)的方法;;多项
您可能关注的文档
最近下载
- 高考作文模拟写作直面青春迷茫导写(附写作指导及范文点评) 2021范文.doc VIP
- 餐厅6S制作流程.pptx
- 《现代酒店服务英语》Chapter2 客房预订部服务.ppt VIP
- 北京现代领动_汽车保养手册用户服务指南车辆维护保修说明书电子版.pdf VIP
- The Beginning-钢琴谱 原调简谱 高清正版完整版双手简谱.pdf
- 高考作文模拟写作:贫困应该带给我们的 导写(附:写作指导及范文点评).docx VIP
- 光伏发电+储能项目建议书写作模板.doc VIP
- 交通安全风险评估.pdf VIP
- 隧道注浆施工记录表.doc VIP
- 《现代酒店服务英语》Chapter1 前台服务.ppt VIP
文档评论(0)