Vous êtes chargé de planifier un itinéraire de vol pour une société de livraison d'avion locale. Vous devez acheminer un avion du point A au point B. Vous ne pouvez tout simplement pas commencer en A, pointer l'avion en B et continuer, car les vents dominants vous feront dévier de votre cap. Au lieu de cela, vous devez déterminer dans quelle direction vous devez pointer l'avion afin qu'il vole directement vers B, en tenant compte du vent.
contribution
7 nombres à virgule flottante, codant A_x, A_y, B_x, B_y, S, W_x, W_y. Ce sont les coordonnées de votre départ et de destination, la vitesse de votre avion, et la force du vent le long des axes x et y (la direction du vent pour , non pas).
production
Vous devez imprimer l'angle en degrés (tournant dans le sens antihoraire à partir de l'axe x positif) que le plan doit pointer pour atteindre B en ligne droite. Imprimez GROUNDED
si le vent est assez fort pour rendre le voyage impossible.
Vous pouvez arrondir au degré le plus proche et le faire avec n'importe quelle méthode que vous souhaitez (haut / bas / plus proche / ...).
exemples
contributions
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
les sorties
30
GROUNDED
229
Le code le plus court gagne.
a sin x + b cos x = c
sur Google des méthodes pour résoudre votre équation. La résolution directe n'est peut-être pas la meilleure façon d'aller ici, cependant ...Réponses:
J - 155 caractères
Par exemple:
Supprimez le
0".
début dey
si vous ne vous occupez pas de la syntaxe numérique J (_
pour la négation unaire):Comme je l'ai mentionné dans ma réponse Perl, j'apprends seulement J, mais j'aime sa puissance.
la source
Perl - 222 caractères
Algorithme Straighforward, et vraiment seulement joué au golf en serrant les espaces et la longueur de nom variable, mais je pensais que nous avions besoin d'une première réponse ici. J'ai appris du J pour jouer au golf; Je soupçonne que la simple traduction en J (ou Ruby) l'emportera facilement. En route pour les essayer.
$X
= composante vent de travers,$T
= composante vent arrière. Nous sommes immobilisés si le vent arrière est en fait un vent de face (c'est-à-dire négatif) et plus fort que notre vitesse anémométrique. Sinon,$C
c'est l'angle de correction du vent que nous soustrayons de notre cap$c
pour obtenir notre cap. Nous devons tourner suffisamment loin pour équilibrer le vent de travers avec la composante transversale de notre vitesse.la source
Perl: 193
Certes, il s'agit (principalement) du code Perl de DCharness: mais qui n'aime pas la source d'auto-réécriture?
Il produira également des degrés hors spécifications (c'est-à-dire <0 ou> 360), mais ai-je mentionné la source d'auto-réécriture?
la source