"Es ist also nicht falsch, es ist die richtige Antwort auf eine andere Frage" - liebe es! - denke, ich könnte mich herausfordern, diesen Satz öfter zu verwenden!
Thomas Kimber
6
In Python 3.6 erhalten Sie die richtige Antwort auf die Frage, die Sie zuerst gestellt haben.
Vwvan
2
Die zweite Methode kann berechnet werden als:sqrt = x**(float(1)/2)
VM_AI
117
Sie müssen schreiben: sqrt = x**(1/2.0)Andernfalls wird eine Ganzzahldivision durchgeführt und der Ausdruck wird 1/2zurückgegeben 0.
Dieses Verhalten ist in Python 2.x "normal", während in Python 3.x Folgendes 1/2ausgewertet wird 0.5. Wenn Sie Ihren Python 2.x Code wollen wie 3.x WRT Division schreiben verhalten from __future__ import division- dann 1/2wird bewerten , um 0.5und für die Abwärtskompatibilität, 1//2wird zu prüfen , zu 0.
Für die Aufzeichnung ist die bevorzugte Methode zur Berechnung einer Quadratwurzel folgende:
Es ist eine triviale Ergänzung der Antwortkette. Da das Thema jedoch ein sehr häufiger Google-Hit ist, sollte es meiner Meinung nach hinzugefügt werden.
Die Antwort mag etwas spät sein, aber die einfachste und genaueste Methode zur Berechnung der Quadratwurzel ist die Newton-Methode.
Sie haben eine Zahl, deren Quadratwurzel (num)Sie berechnen möchten, und Sie haben eine Vermutung der Quadratwurzel (estimate). Die Schätzung kann eine beliebige Zahl größer als 0 sein, aber eine sinnvolle Zahl verkürzt die rekursive Anruftiefe erheblich.
new_estimate =(estimate + num / estimate)/2
Diese Linie berechnet eine genauere Schätzung mit diesen beiden Parametern. Sie können den Wert new_estimate an die Funktion übergeben und einen anderen Wert new_estimate berechnen, der genauer als der vorherige ist, oder Sie können eine rekursive Funktionsdefinition wie diese erstellen.
def newtons_method(num, estimate):# Computing a new_estimate
new_estimate =(estimate + num / estimate)/2print(new_estimate)# Base Case: Comparing our estimate with built-in functions valueif new_estimate == math.sqrt(num):returnTrueelse:return newtons_method(num, new_estimate)
Zum Beispiel müssen wir die Quadratwurzel der 30er Jahre finden. Wir wissen, dass das Ergebnis zwischen 5 und 6 liegt.
newtons_method(30,5)
Die Nummer ist 30 und die Schätzung ist 5. Das Ergebnis jedes rekursiven Aufrufs ist:
Dies ist ein natürlicherer Weg, um Quadratwurzeln zu machen, aber wie beantwortet es die Frage (zugegebenermaßen beantwortet es die Frage im Titel, aber nicht die eigentliche Frage im Körper (ja, es ist ein schlechter Titel))?
Peter Mortensen
-1
Ich hoffe, der unten genannte Code wird Ihre Frage beantworten.
def root(x,a):
y =1/ a
y = float(y)print y
z = x ** y
print z
base = input("Please input the base value:")
power = float(input("Please input the root value:"))
root(base,power)
import math
und dann,x = math.sqrt(25)
die den Wert5.0
x zuweist.Antworten:
sqrt=x**(1/2)
macht Integer Division.1/2 == 0
.Sie berechnen also in erster Linie x (1/2), in zweiter Linie x (0) .
Es ist also nicht falsch, es ist die richtige Antwort auf eine andere Frage.
quelle
sqrt = x**(float(1)/2)
Sie müssen schreiben:
sqrt = x**(1/2.0)
Andernfalls wird eine Ganzzahldivision durchgeführt und der Ausdruck wird1/2
zurückgegeben0
.Dieses Verhalten ist in Python 2.x "normal", während in Python 3.x Folgendes
1/2
ausgewertet wird0.5
. Wenn Sie Ihren Python 2.x Code wollen wie 3.x WRT Division schreiben verhaltenfrom __future__ import division
- dann1/2
wird bewerten , um0.5
und für die Abwärtskompatibilität,1//2
wird zu prüfen , zu0
.Für die Aufzeichnung ist die bevorzugte Methode zur Berechnung einer Quadratwurzel folgende:
quelle
Es ist eine triviale Ergänzung der Antwortkette. Da das Thema jedoch ein sehr häufiger Google-Hit ist, sollte es meiner Meinung nach hinzugefügt werden.
quelle
/
führt in Python 2 eine Ganzzahldivision durch:Wenn eine der Zahlen ein Float ist, funktioniert sie wie erwartet:
quelle
Was Sie sehen, ist die Ganzzahldivision. Um standardmäßig eine Gleitkommadivision zu erhalten,
Oder Sie können 1 oder 2 von 1/2 in einen Gleitkommawert umwandeln.
quelle
Die Antwort mag etwas spät sein, aber die einfachste und genaueste Methode zur Berechnung der Quadratwurzel ist die Newton-Methode.
Sie haben eine Zahl, deren Quadratwurzel
(num)
Sie berechnen möchten, und Sie haben eine Vermutung der Quadratwurzel(estimate)
. Die Schätzung kann eine beliebige Zahl größer als 0 sein, aber eine sinnvolle Zahl verkürzt die rekursive Anruftiefe erheblich.Diese Linie berechnet eine genauere Schätzung mit diesen beiden Parametern. Sie können den Wert new_estimate an die Funktion übergeben und einen anderen Wert new_estimate berechnen, der genauer als der vorherige ist, oder Sie können eine rekursive Funktionsdefinition wie diese erstellen.
Zum Beispiel müssen wir die Quadratwurzel der 30er Jahre finden. Wir wissen, dass das Ergebnis zwischen 5 und 6 liegt.
Die Nummer ist 30 und die Schätzung ist 5. Das Ergebnis jedes rekursiven Aufrufs ist:
Das letzte Ergebnis ist die genaueste Berechnung der Quadratwurzel der Zahl. Dies ist der gleiche Wert wie die integrierte Funktion math.sqrt ().
quelle
Vielleicht eine einfache Möglichkeit, sich zu erinnern: Fügen Sie nach dem Zähler (oder Nenner) einen Punkt ein.
quelle
Mit NumPy können Sie Quadratwurzeln von Arrays berechnen:
quelle
Ich hoffe, der unten genannte Code wird Ihre Frage beantworten.
quelle