Я попытался вычислить this алгоритм с питоном и не похоже на работу:Square алгоритм Root ошибка
lt = False
x = 5
g = 2
while lt == False:
if g*g > (x-0.1) and g*g < (5.1):
lt = True
print(g+"IS THE SQUARE ROOT")
else:
g = (g + x/g)/2
print(g)
В цикле еще, я напечатал г, чтобы увидеть результат моего алгоритма в каждом цикле потому что раньше я испытывал медленные вычисления и хотел посмотреть, в чем проблема, и теперь print (g), похоже, постоянно возвращается 2. Я новичок в python, и проблема, вероятно, смотрит на меня в лицо, но я не могу похоже, это поможет, любая помощь будет очень признательна!
Является ли отступ, который вы показываете в правильном вопросе (то есть, на самом деле это то, что в вашем коде)? В настоящее время он выглядит так, как блок 'else' привязан к циклу while, а не' if'. – Blckknght
Какую версию python вы используете? Кажется, он использует целочисленное деление вместо плавающей запятой. '(2 + 5/2)/2 = (2 + 2)/2 = 2' Посмотрите здесь для получения дополнительной информации: http://stackoverflow.com/questions/2958684/python-division – clcto
Что не так с использованием' g * * .5'? – hd1