整数平方根的计算(二)

16 篇文章 1 订阅
1 篇文章 0 订阅

摘要:

   本文给出了另一个计算整数平方根的程序,和整数平方根的计算(一)不同,他主要使用牛顿法来求平方根,大整数运算调用GMP整数运算库。全部的代码能够从http://download.csdn.net/download/liangbch/4070516 下载。

 

  算法:

    这个程序的主要算法是牛顿迭代法。他首先得到一个平方根的初始值,然后使用牛顿迭代法逐步求精,在计算过程中,始终用两个整数的比表示整数平方根的值。最后,它转换分数表示的平方根为10进制字符串。

 

  说明: 该文有待完善。

 

性能分析:

   对比PiFast,它的性能仍然不是很好,我特意分析了这个程序各个部分的时间开销,发现主要瓶颈在最后输出部分。下表给出计算2的平方根的时间花费。

steps

Time(seconds)

 Percentage

calc

0.308532

10.92%

x=pow(10,d)

0.094357

3.34%

p*= (10^d)

0.371915

13.17%

p/q

0.708144

25.07%

toString

1.177165

41.68%

print to file

0.164422

5.82%

total

2.824535

100.00%

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值