Das Kreuzprodukt zweier dreidimensionaler Vektoren und ist der eindeutige Vektor so dass:
ist orthogonal zu und
Die Größe von ist gleich der Fläche des durch und → b gebildeten Parallelogramms
Die Richtungen von , und folgen in dieser Reihenfolge der Rechtsregel .
Es gibt einige äquivalente Formeln für Kreuzprodukte, aber eine lautet wie folgt:
Dabei sind , und die Einheitsvektoren in der ersten, zweiten und dritten Dimension.
Herausforderung
Schreiben Sie mit zwei 3D-Vektoren ein vollständiges Programm oder eine Funktion, um das Kreuzprodukt zu finden. Builtins, die spezifisch das Kreuzprodukt berechnen, sind nicht zulässig.
Eingang
Zwei Arrays mit jeweils drei reellen Zahlen. Wenn Ihre Sprache keine Arrays enthält, müssen die Zahlen immer noch in drei Gruppen eingeteilt werden. Beide Vektoren haben eine Größe . Beachten Sie, dass das Kreuzprodukt nicht kommutativ ist ( ), sodass Sie eine Möglichkeit haben sollten, die Reihenfolge anzugeben.
Ausgabe
Ihr Kreuzprodukt in einem vernünftigen Format, wobei jede Komponente auf vier signifikante Zahlen oder genau ist , je nachdem, welcher Wert niedriger ist. Die wissenschaftliche Notation ist optional.
Testfälle
[3, 1, 4], [1, 5, 9]
[-11, -23, 14]
[5, 0, -3], [-3, -2, -8]
[-6, 49, -10]
[0.95972, 0.25833, 0.22140],[0.93507, -0.80917, -0.99177]
[-0.077054, 1.158846, -1.018133]
[1024.28, -2316.39, 2567.14], [-2290.77, 1941.87, 712.09]
[-6.6345e+06, -6.6101e+06, -3.3173e+06]
Das ist Code-Golf , also gewinnt die kürzeste Lösung in Bytes.
Maltysen postete eine ähnliche Herausforderung , aber die Antwort war schlecht und die Frage wurde nicht bearbeitet.