Bestimmen Sie bei zwei Punkten A
und B
den Winkel von Linie AO
zu Linie BO
um den Punkt, an O
dem O
sich der Ursprung befindet ( (0,0)
). Zusätzlich kann der Winkel abhängig von der Position der Punkte positiv oder negativ sein (siehe Beispiele). Die Eingabe erfolgt in Punkten A
und B
und kann in beliebiger Form erfolgen. Die Ausgabe ist der Winkel in Grad (aber positiv, wenn AO
gegen den Uhrzeigersinn gedreht, um den Ursprung zu erhalten, BO
und negativ, wenn im Uhrzeigersinn gedreht). Wenn der Winkel 180 Grad beträgt, können Sie eine negative oder positive Ausgabe zurückgeben. Ebenso kann der Winkel die positive oder negative Version desselben Winkels sein ( 90 deg
ist gleich -270 deg
). Beispiele:
Eingabe:
A(5,5) B(5,-5)
Ausgabe:-90
(AO
wird um-90
Grad gedrehtBO
).Eingabe:
A(5,-5) B(5,5)
Ausgabe:90
(AO
wird um90
Grad gedrehtBO
).
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes!
quelle
(0,0)
?AO
und wirdBO
normalerweise Winkel genanntAOB
.Antworten:
Pyth, 11 Bytes
Demonstration
Die Eingabe erfolgt im Format:
Wenn gewünscht wird, dass A zuerst kommt, kann dies für 1 Byte geändert werden.
Erläuterung:
quelle
TI-BASIC, 13 Bytes
Für Taschenrechner der Serie TI-83 + / 84 +.
Um dieses Programm zu verwenden, geben Sie die Liste
{x1,x2}
über die Ans-Variable und{y1,y2}
an der Eingabeaufforderung ein.quelle
ΔList(
, sind ein Byte jeder. Dies beinhaltetR►Pθ(
.CJam, 14 Bytes
Dies ist ein vollständiges Programm, das die Eingabe
[[Ax Ay] [Bx By]]
ab STDIN liest .Probieren Sie es online im CJam-Interpreter aus .
Wie es funktioniert
quelle
Minkolang 0,9 , 112 Bytes
Ich möchte Trigger-Funktionen jetzt wirklich als integrierte Funktionen implementieren ... aber das hat Spaß gemacht! (Vorsichtsmaßnahme: Dies gibt die positive Winkeldifferenz aus, nicht die vorzeichenbehaftete Winkeldifferenz. Angesichts meiner Einschränkungen denke ich, dass dies gerechtfertigt ist.)
Probieren Sie es hier aus.
Erläuterung
Ich werde eine ausführlichere Erklärung veröffentlichen, wenn es jemand möchte, aber das Wesentliche ist:
quelle
:D
War es die Hello World-Herausforderung, die Sie bemerkten, dass die Kommentare in (FYI, dem Interpreter, den ich für Simplex erstellt habe, in verschiedenen "Modi" ablaufen: String-Modus und Kommentar-Modus. Es macht das Parsen wirklich einfach und ermöglicht Ihnen, Signalzeichen eines zu ignorieren Modus während in der anderen.)Mathematica, 22 Bytes
Beispiel:
quelle
{{0,1},{1,0}}
Javascript, 66 Bytes
Demo
quelle
let f=
, und es gilt immer noch als anonyme Funktion.Julia,
1825 BytesDies setzt voraus, dass "jede bequeme Form" bereits erlaubt
A
undB
als komplexe Zahlen angegeben werden kann. Dann macht die komplexe Zahlenarithmetik das ganze schwere Heben.Bearbeiten: Snippet in Funktion konvertiert. Die 18-Byte-Version funktioniert nur in der Julia REPL.
quelle
Python 2.7, 73 Bytes
Prüfung:
quelle
*
Oktave, 43 Bytes
Input-Output:
quelle
CJam, 15 Bytes
Dachte, ich komme auch ins CJam-Spiel. Probieren Sie es online aus . Die Eingabe erfolgt in Form von
bx by ax ay
. Leider ist dies die kürzeste Methode, um diese Herausforderung zu bewältigen, ohne Dennis 'Antwort zu kopieren.quelle
TeaScript, 28 Bytes
Ich sollte wirklich Triggerfunktionen implementieren ...
Probieren Sie es aus Online- Eingabe ist
a.x a.y b.x b.y
Erläuterung
quelle
Ruby,
64, 58 BytesVerwendung
quelle
JavaScript, 49 Bytes
Die Eingabe erfolgt in Form von:
[aY, aX], [bY, bX]
(Beachten Sie das umgekehrte x / y)quelle
Simplex v.0.7 , 13 Bytes
Ich bin froh, dass ich hinzugefügt habe
mathrelations
: D Leider kann ich keine punktweisen Eingaben machen. Also gebe ich jeden Punkt als separate Zahl ein (Axe, Ay, Bx, By). (Ich habe dies als Ressource verwendet.)Ich kann ein Zeichen speichern, wenn ich Eingaben als (Ay, Axe, By, Bx) annehmen kann:
quelle
C 88 Bytes
Erfordert das Kompilieren mit GCC, um den Vorteil zu nutzen
M_PI
,math.h
als Teil der integrierten mathematischen Konstanten von GCC definiert zu werden . Probieren Sie es online aus - da ideone (anscheinend) kein GCC verwendet, sind einige zusätzliche Bytes erforderlich, damit genügend Stellen von π genau sind.quelle
45/atan(1)
statt180/3.14159....
(in der Online-Demo).