电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

大数阶乘算法

大数阶乘算法_第1页
1/9
大数阶乘算法_第2页
2/9
大数阶乘算法_第3页
3/9
*************************************(1)**************************************************** 假如需要计算n+16 的阶乘,n+16 接近10000,已经求得n!(共有m 个单元),(每个单元用一个long 数表示,表示 1-100000000) 第一种算法(传统算法) 计算(n+1)! 需要 m 次乘法, m 次加法(加法速度较快,可以不予考虑,下同),m 次求余(求本位),m 次除法(求进位),结果为 m+1的单元 计算(n+2)! 需要 m+1 次乘法, m+1 次求余, m+1 次除法, 结果为 m+1 个单元 计算(n+3)! 需要 m+1 次乘法, m+1 次求余 ,m+1 次除法 ,结果为 m+2 个单元 计算(n+4)! 需要 m+2 次乘法, m+2 次求余 ,m+2 次除法 ,结果为 m+2 个单元 计算(n+5)! 需要 m+2 次乘法, m+2 次求余 ,m+2 次除法 ,结果为 m+3 个单元 计算(n+6)! ... 计算(n+7)! ... 计算(n+8)! ... 计算(n+9)! ... 计算(n+10)! ... 计算(n+11)! ... 计算(n+12)! ... 计算(n+13)! ... 计算(n+14)! 需要 m+7 次乘法,m+7 次求余 ,m+7 次除法 ,结果为m+7 个单元 计算(n+15)! 需要 m+7 次乘法,m+7 次求余 ,m+7 次除法 ,结果为m+8 个单元 计算(n+16)! 需要 m+8 次乘法,m+8 次求余 ,m+8 次除法 ,结果为m+8 个单元 该算法的复杂度:共需:m+(m+8)+(m+1+m+7)*7=16m+64 次乘法,16m+64 次求余,16m+64 次除法 第二种算法: 1.将n+1 与n+2 相乘,将n+3 与n+4 相乘,将n+5 与n+6...n+15 与n+16,得到8 个数,仍然叫做n1,n2,n3,n4,n5,n6,n7,n8 2. n1 与 n2 相乘,结果叫做p2,结果为2 个单元,需要1 次乘法。 p2 与 n3 相乘,结果叫做p3,需要2 次乘法,1 次加法(加法速度快,下面省略),2 次除法,2 次求余 p3 与 n4 相乘,结果叫做p4,需要3 次乘法,3 次除法,3次求余 p4 与 n4 相乘,结果叫做p5,需要4 次乘法,4 次除法,4次求余 p5 与 n6 相乘,结果叫做p6,需要5 次乘法,5 次除法,5次求余 p6 与 n7 相乘,结果叫做p7,需要6 次乘法,6 次除法,6次求余 p7 与 n8 相乘,结果叫做p8,结果为8 个单元,需要7 次乘法,7 次除法,7 次求余 这一过程的复杂度为(1+2+3+...+7)共计28 次乘法,28 次求余,28 次除法。 3.将 n!(m 个单元) 与p8(8 个单元)相乘,需要m*8 次乘法,m次除法,m 次求余,(注意不是 m*8 次求...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

大数阶乘算法

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部