Você está encarregado de planejar uma rota aérea para uma empresa de entrega de aviões local. Você precisa direcionar um avião do ponto A ao ponto B. Você simplesmente não pode começar em A, apontar o avião para B e, no entanto, seguir em frente, pois os ventos predominantes o afastarão do curso. Em vez disso, você precisa descobrir em qual direção deve apontar o avião para que ele voe diretamente para B, levando em consideração o vento.
entrada
7 números de ponto flutuante, codificando A_x, A_y, B_x, B_y, S, W_x, W_y. Estas são as coordenadas da sua partida e destino, a velocidade do seu avião, e a força do vento ao longo do eixos xey (a direção o vento sopra a , não a partir de).
resultado
Você deve imprimir o ângulo em graus (girando no sentido anti-horário a partir do eixo x positivo) que o plano deve apontar para alcançar B em uma linha reta. Imprima GROUNDED
se o vento for tão forte que impossibilite a viagem.
Você pode arredondar para o grau mais próximo e fazê-lo com qualquer método que desejar (cima / baixo / mais próximo / ...).
exemplos
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
saídas
30
GROUNDED
229
O menor código vence.
a sin x + b cos x = c
no Google alguns métodos para resolver sua equação. Solving direta pode não ser a melhor maneira de ir aqui, embora ...Respostas:
J - 155 caracteres
Por exemplo:
Remova a
0".
antecipaçãoy
se você não se importar com a sintaxe numérica J (_
para negação unária):Como mencionei na minha resposta Perl, estou apenas aprendendo J, mas gostando de seu poder.
fonte
Perl - 222 caracteres
Algoritmo direto e realmente jogado apenas apertando espaços em branco e comprimento de nome variável, mas achei que precisávamos de uma primeira resposta aqui. Eu tenho aprendido alguns J para jogar golfe; Suspeito que simplesmente traduzir para J (ou Ruby) supere isso prontamente. Off para tentar aqueles.
$X
= componente de vento cruzado,$T
= componente de vento de cauda. Estamos aterrados se o vento de cauda for realmente um vento de vento (ou seja, negativo) e mais forte que nossa velocidade no ar. Caso contrário,$C
é o ângulo de correção do vento que subtraímos do nosso curso$c
para obter nosso rumo. Precisamos girar o suficiente para equilibrar o vento cruzado com o componente da nossa velocidade na faixa transversal.fonte
Perl: 193
É certo que este é (principalmente) o código Perl do DCharness: mas quem não gosta de fonte de reescrita?
Além disso, ele produzirá graus fora da especificação (ou seja, <0 ou> 360), mas mencionei a fonte de reescrita automática?
fonte