Ich arbeitete vor kurzem an der Suche nach der Quadratwurzel einer Zahl in python
ohne sqrt()
zu verwenden. Ich kam in diesem Code und Schwierigkeiten habe in diesem Code, um die Logik zu verstehen:Quadratwurzel ohne Verwendung von math.sqrt() finden?
def sqrt(x):
last_guess= x/2.0
while True:
guess= (last_guess + x/last_guess)/2
if abs(guess - last_guess) < .000001: # example threshold
return guess
last_guess= guess
Insbesondere die Logik hinter guess
in obigem Code zu berechnen. Kann mir jemand helfen, die Logik zu verstehen?
https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method –
Bitte erläutern Sie, wo Sie stecken: Ihre Die Suche nach dem "Quadratwurzelalgorithmus" sollte viele Treffer ergeben haben, um Ihre Frage zu beantworten. Dies wird auch als Newtonsche Methode (angewandt auf die Quadratwurzel) oder als babylonische Methode bezeichnet. – Prune
Die Logik: Initialisiert den letzten Schätzwert auf die Hälfte der Zahl. Berechnet eine neue Schätzung, bei der es sich um den Durchschnitt der letzten Schätzung und die Anzahl dividiert durch die letzte Schätzung handelt. Überprüft, ob dieser neue Wert sich vom letzten unterscheidet, um ihn als Antwort zurückzugeben. Ist dies nicht der Fall, machen Sie die letzte Rate neu und wiederholen Sie den Vorgang. Es wird davon ausgegangen, dass jede Iteration dieses Mittelungsprozesses näher an die Antwort herankommt. – martineau