Usted tiene la tarea de planificar una ruta de vuelo para una compañía local de entrega de aviones. Debe enrutar un avión desde el punto A al punto B. Simplemente no puede comenzar en A, apuntar el avión a B y, sin embargo, ir, ya que los vientos dominantes lo desviarán del rumbo. En su lugar, debe averiguar en qué dirección debe apuntar el avión para que vuele directamente a B, teniendo en cuenta el viento.
entrada
7 números de coma flotante, codificación A_x, A_y, B_x, B_y, S, W_x, W_y. Estas son las coordenadas de su inicio y destino, la velocidad del aire de su avión y la fuerza del viento a lo largo de los ejes x e y (la dirección hacia donde sopla el viento , no desde).
salida
Debe imprimir el ángulo en grados (girando en sentido antihorario desde el eje x positivo) que el plano debe apuntar para llegar a B en línea recta. Imprima GROUNDED
si el viento es tan fuerte que hace imposible el viaje.
Puede redondear al grado más cercano y hacerlo con cualquier método que desee (arriba / abajo / más cercano / ...).
ejemplos
entradas
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
salidas
30
GROUNDED
229
El código más corto gana.
a sin x + b cos x = c
en Google algunos métodos para resolver su ecuación. Sin embargo, la resolución directa puede no ser la mejor manera de ir aquí ...Respuestas:
J - 155 caracteres
Por ejemplo:
Elimine el
0".
avance dey
si no le importa la sintaxis numérica J (_
para negación unaria):Como mencioné en mi respuesta de Perl, solo estoy aprendiendo J, pero me gusta su poder.
fuente
Perl - 222 caracteres
Algoritmo directo, y realmente solo jugó apretando espacios en blanco y longitud de nombre variable, pero pensé que necesitábamos una primera respuesta aquí. He estado aprendiendo algo de J para jugar golf; Sospecho que simplemente traducir a J (o Ruby) fácilmente superará esto. A probar esos.
$X
= componente de viento cruzado,$T
= componente de viento de cola. Estamos castigados si el viento de cola es en realidad un viento de frente (es decir, negativo) y más fuerte que nuestra velocidad aérea. De lo contrario,$C
es el ángulo de corrección del viento que restamos de nuestro rumbo$c
para obtener nuestro rumbo. Necesitamos girar lo suficiente como para equilibrar el viento cruzado con el componente transversal de nuestra velocidad.fuente
Perl: 193
Es cierto que este es (principalmente) el código Perl de DCharness: ¿pero a quién no le gusta la fuente de auto reescritura?
También generará grados fuera de las especificaciones (es decir, <0 o> 360), pero ¿mencioné la fuente de reescritura automática?
fuente