这是功能:
double functions::rot(double x,double y) { double z = x; double w = 1; double e = 0.000001; while (z - w > e){ z = (z + w) / 2; w = x / z; } return z;}
y就是力量.有没有人有办法改变这个算法,所以y是根的力量?例如,如果y = 3,则采用立方根.
解决方法 将w = x / z更改为w = x / z * z的注释仅为1/3(双关语意)正确.您还需要另外两个更改,我认为这些更改在此Python代码中很明显:def rot(x,y): # z = x w = 1 e = 0.000001 while (z - w > e): z = ((y - 1) * z + w) / y w = x / (z ** (y - 1)) # a ** b is a to the power of b in Python # you might want to use modular exponentiation in C++ # (or not if y is double...) return zprint(rot(64,3)) # prints 4print(rot(59,6)) # prints 1.9730678338673044
请参阅此处获取reference.我建议您阅读它,因为它提供了更深入的解释.
总结以上是内存溢出为你收集整理的c – 将巴比伦平方根算法推广到第n个根全部内容,希望文章能够帮你解决c – 将巴比伦平方根算法推广到第n个根所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)