Eine einfache Bewegung, immer wieder …
t.A.T.u., «A Simple Motion»
Julia liebt einfache Bewegungen sehr, besonders im dreidimensionalen Raum! Kürzlich fand sie eine Matrix, die einer gewissen Drehung um eine Achse durch den Ursprung entspricht.
Eine Rotationsmatrix $A$ bewegt den Punkt $\begin{pmatrix}x\\y\\z\end{pmatrix}$ wie folgt nach $\begin{pmatrix}x'\\y'\\z'\end{pmatrix}$:
$$ \begin{pmatrix}x'\\y'\\z'\end{pmatrix}= \begin{pmatrix}A_{11}&A_{12}&A_{13}\\A_{21}&A_{22}&A_{23}\\A_{31}&A_{32}&A_{33}\end{pmatrix} \times\begin{pmatrix}x\\y\\z\end{pmatrix}. $$
Eine Drehung lässt sich auch geometrisch durch einen Einheitsvektor (also einen Vektor der Länge $1$) $v=\begin{pmatrix}v_x\\v_y\\v_z\end{pmatrix}$, um den die Drehung erfolgt, und einen Drehwinkel $\alpha$ beschreiben. Stelle dir vor, du blickst vom Ende von $v$ auf den Ursprung. Erfolgt die Drehung dann gegen den Uhrzeigersinn, ist der Winkel $\alpha$ positiv, andernfalls negativ.
Julia möchte die durch eine Matrix gegebene Drehung geometrisch ausdrücken. Leider kennt sie die Werte von $v$ und $\alpha$ nicht. Daher hat sie dich gebeten, sie zu finden, damit sie ihre einfache Bewegung fortsetzen kann.
Eingabe
Gegeben ist die Matrix $A$: drei Zeilen mit je drei reellen Zahlen. Jede Zahl wird mit höchstens $20$ Nachkommastellen angegeben. Es ist garantiert, dass solche $v$ und $\alpha$ existieren, dass $1\le|\alpha|\le179$ gilt und sich außerdem die Elemente der Matrix $A'$, die einer Drehung um den Vektor $v$ um den Winkel $\alpha$ entspricht, von den entsprechenden Elementen von $A$ um höchstens $10^{-13}$ unterscheiden.
Ausgabe
Gib in der ersten Zeile den Winkel $\alpha$ in Grad aus. Gib in der zweiten Zeile die Koordinaten des Einheitsvektors $v$ aus. Gib alle Zahlen so genau wie möglich aus. Deine Antwort wird als korrekt gewertet, wenn die Differenz zwischen $A_{ij}$ und dem entsprechenden Element der aus deinem Winkel und Einheitsvektor konstruierten Matrix höchstens $10^{-6}$ beträgt.
Beispiele
Eingabe 1
0 -1 0 1 0 0 0 0 1
Ausgabe 1
90 0 0 1