Kubikwurzel und ^3 in Python?

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()
Woher ich das weiß:Berufserfahrung – Studium der Informatik + Softwareentwickler seit 25 Jahren.

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

regex9  03.10.2019, 22:46

Nachtrag: Die n-te Wurzel lässt sich ebenso durch Potenzieren ermitteln.

Formel:

result = number ^ (1 / n)
Isendrak  03.10.2019, 23:33
@regex9

Achtung: Das Zeichen ^ ist in Python der Operator für Bitweises-XOR. (Nicht dass hier noch Missverständnisse auftreten. ^^)

regex9  03.10.2019, 23:39
@Isendrak

Exakt. Das da oben ist nur die mathematische Formel. In Kommentaren kann man die leider nicht so schön formatieren, wie bei Antworten.

Isendrak  03.10.2019, 23:45
@regex9

Gibt ja immer noch Unicode: result = number¹ᐟⁿ ;)

Beantworter375  03.10.2019, 21:56

Wieso hat java sowas nicht

regex9  03.10.2019, 22:43
@Beantworter375

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)


Brockdish 
Beitragsersteller
 03.10.2019, 21:55

In meinem Mathebuch steht das nicht aber danke für die Info

Brockdish 
Beitragsersteller
 03.10.2019, 21:58
@Olokun

Ehm also ich kann mir nur eins besorgen und das habe ich

Kenn mich nicht in Python aus aber mach doch einfach x*x*x. Ansonsten erweiterten pythagoras zur abstandsberechnung