Sie haben die Aufgabe, eine Flugroute für eine lokale Flugzeuglieferfirma zu planen. Sie müssen ein Flugzeug von Punkt A nach Punkt B routen. Sie können einfach nicht bei A starten, das Flugzeug auf B richten und losfahren, da die vorherrschenden Winde Sie vom Kurs abbringen. Stattdessen müssen Sie herausfinden, in welche Richtung Sie das Flugzeug richten sollten, damit es unter Berücksichtigung des Windes direkt nach B fliegt.
Eingang
7 Gleitkommazahlen, die A_x, A_y, B_x, B_y, S, W_x, W_y codieren. Dies sind die Koordinaten des Start- und Ziel, die Fluggeschwindigkeit des Flugzeugs und der Stärke des Windes entlang der x- und y - Achse (die Richtung der Wind bläst , um nicht aus).
Ausgabe
Sie sollten den Winkel in Grad (gegen den Uhrzeigersinn von der positiven x-Achse drehen) drucken, auf den die Ebene zeigen soll, um B in einer geraden Linie zu erreichen. Drucken Sie, GROUNDED
wenn der Wind so stark ist, dass die Fahrt unmöglich wird.
Sie können auf den nächsten Grad runden und dies mit einer beliebigen Methode tun (nach oben / unten / am nächsten / ...).
Beispiele
Eingänge
0 0 10 0 100 0 -50
0 0 10 0 50 -55 0
3.3 9.1 -2.7 1.1 95.0 8.8 1.7
Ausgänge
30
GROUNDED
229
Der kürzeste Code gewinnt.
a sin x + b cos x = c
Google nach einigen Methoden zur Lösung Ihrer Gleichung. Direkte Lösung ist jedoch möglicherweise nicht der beste Weg, um hierher zu gelangen ...Antworten:
J - 155 Zeichen
Zum Beispiel:
Entfernen Sie das
0".
Vorher,y
wenn Sie nichts gegen die numerische J-Syntax haben (_
für unäre Negation):Wie ich in meiner Perl-Antwort erwähnt habe, lerne ich nur J, aber ich mag seine Kraft.
quelle
Perl - 222 Zeichen
Einfacher Algorithmus, der eigentlich nur durch Drücken von Leerzeichen und variabler Namenslänge gespielt wird, aber ich dachte, wir brauchen hier eine erste Antwort. Ich habe etwas J zum Golfen gelernt; Ich vermute, dass eine einfache Übersetzung in J (oder Ruby) dies leicht übertreffen wird. Auf, um diese auszuprobieren.
$X
= Seitenwindkomponente,$T
= Rückenwindkomponente. Wir sind geerdet, wenn der Rückenwind tatsächlich Gegenwind (dh negativ) und stärker als unsere Fluggeschwindigkeit ist. Ansonsten$C
ist der Windkorrekturwinkel, den wir von unserem Kurs abziehen, um unseren Kurs$c
zu erhalten. Wir müssen weit genug drehen, um den Seitenwind mit der Querstreckenkomponente unserer Geschwindigkeit auszugleichen.quelle
Perl: 193
Zugegeben, dies ist (meistens) der Perl-Code von DCharness: aber wer mag es nicht, sich selbst neu zu schreiben?
Es werden auch Grad außerhalb der Spezifikation ausgegeben (dh <0 oder> 360), aber habe ich die selbst umschreibende Quelle erwähnt?
quelle