Kubikwurzel und ^3 in Python?
Es gibt eine Formel zum Berechnen des Abstands von zwei Sprites in einem 3D-Raum und dafür brauche ich Kubikwurzeln und Hoch-3 in Python.
Ich weiß aber nicht, wie es geschrieben werden soll.
5 Antworten
#!/usr/bin/python
import sys
from math import sqrt
print "Punkt1 x y z"
x0 = float(raw_input())
y0 = float(raw_input())
z0 = float(raw_input())
print "Punkt2 x y z"
x1 = float(raw_input())
y1 = float(raw_input())
z1 = float(raw_input())
#prfloat "[", x0, y0, z0, "] ", " [",x1, y1,z1, "]"
a = [x0, y0, z0]
b = [x1, y1, z1]
abstand = sqrt((b[0]-a[0])*(b[0]-a[0])+(b[1]-a[1])*(b[1]-a[1])+(b[2]-a[2])*(b[2]-a[2]))
print "abstand", abstand
sys.exit()
Also wenn ich auf T drücke wird entsteht daraus der String T?
a=[...]
b=[...]
math.sqrt(functools.reduce(lambda u,v: u+v , itertools.starmap(lambda x,y : (x-y)**2,zip(a,b))))
a und b können Vektoren beliebiger Dimension sein.
Alternativ könnte man es auch so implementieren:
d=0
for x,y in zip(a,b):
d+=(x-y)**2
d=math.sqrt(d)
In Python gibt es den power-Operator:
result = 2**3
print(result) # 8
Nachtrag: Die n-te Wurzel lässt sich ebenso durch Potenzieren ermitteln.
Formel:
result = number ^ (1 / n)
Python wurde ja als einfache Skriptsprache entwickelt und fand schnell Einzug in der Anwendung wissenschaftlicher Bereiche. Zumindest die erste Zielsetzung dürfte Grund für die Einarbeitung dieses Operators gewesen sein. In Java bestand kein Fokus auf solche expliziten Verkürzungen.
https://docs.python.org/2/library/functions.html#pow
also pow()
oder x**y
für die Wurzel hol mal Dein Mathebuch wieder raus, dritte Wurzel heißt hoch(1/3)
In meinem Mathebuch steht das nicht aber danke für die Info
Kenn mich nicht in Python aus aber mach doch einfach x*x*x. Ansonsten erweiterten pythagoras zur abstandsberechnung
Ah so geht's auch danke
Und was ist raw_input ?