python中不带预定义函数的平方根

2024-04-19 00:07:51 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在python中不使用任何预定义函数就可以找到一个数的平方根?在

我需要程序的平方根是如何工作的主要逻辑。在一般数学中,我们会用HCF来做,但在编程中,我找不到逻辑。在


Tags: 函数程序编程数学逻辑hcf
3条回答

这里有一个你可以做到的方法。请注意,这并不是数学上最有效的方法,它只是一种简单的方法,可以在不干扰奇怪的数学的情况下完成:

a=int(input('number! '))
accuracy=10 #number of decimals
s=0
step=1
for i in range(accuracy+1):
    while (s+step)**2<=a:
        s+=step
    step=step/10
s=format(s,'.'+str(accuracy)+'f')
print(s)

有一种著名的数学方法叫做牛顿-拉斐逊方法,它可以连续地找到更好的根的近似值。在

基本上,这个方法取一个初始值,然后在成功的迭代中收敛到解决方案。你可以阅读更多关于它的here。在

示例代码附在这里供您参考。在

def squareRoot(n):
    x=n
    y=1.000000 #iteration initialzation.
    e=0.000001 #accuracy after decimal place.
    while x-y > e:
        x=(x+y)/2
        y=n/x
    print x

n = input('enter the number : ') 
squareRoot(n)

在这里,您可以通过在小数点后添加e和y中的“0”位来提高平方根结果的精度。在

还有其他一些方法,如二元搜索法,用于查找平方根,如所示here。在

我将通过构建一个算法来解决这个问题,因为这些步骤很容易理解,并且可以重复直到非常精确。例如:

  • 在已知的完全正方形中构建(2^2是4,4^2是16,等等)
  • 找出给定数在哪个完美的平方之间(如果给定10,它在3^2(9)和4^2(16)之间)。因此,10的平方根在3到4之间。

请查看此算法的this link for an easy explanation,以及如何重复以确保准确性。在

相关问题 更多 >