|
|

楼主 |
发表于 2016-9-15 23:24
|
显示全部楼层
本帖最后由 elim 于 2016-9-15 08:46 编辑
我们来试试这个算法:
- def kf(a, k =2, s = 1,e = 0.00000000000001):
- if a <= 1:
- print "Need input a > 1"
- return 0
- if int(k) != k or k < 2:
- print "Need integer n > 1"
- return 0
- if 1 == s:
- print "Calculating %.2f^(1/%d). Accuracy %.18f" % (a, k, e)
- m = 1 - k
- u = (k - 1.0)/k
- v = a*1.0/k
- x = a*1.0
- cnt = 0
- d = e + 1.0
- while d > e:
- y = u*x + v*(x**m)
- d = x - y
- cnt += 1
- if s == 1:
- print "%3d: %.15f" % (cnt, y)
- x = y
- if 1 == s:
- print "Result: %0.15f (%d times iterate, accuracy: %.18f)" % (x, cnt,e)
- return x
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|