Introdução:
O seno de x
é dado pela fórmula:
sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - x^11/11! // and more follows...
O cosseno de x
é dado pela fórmula:
cos(x) = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - x^10/10! // and more follows...
Tarefa:
Dado o valor de x
e n
, escreva um programa (sem funções, etc.) para gerar o valor sin(x)
e cos(x)
corrija os n
termos da fórmula acima. Suponha que x
esteja em radianos.
Entrada:
x n
Um número decimal x
(com até 3 casas decimais) e um número inteiro n
. A entrada deve estar no stdin ou em uma caixa de diálogo de prompt (se o seu idioma não suportar stdin)
Saída:
[sin(x)]
[cos(x)]
O valor de ambos sin(x)
e cos(x)
deve ser arredondado para 6 casas decimais. Se sin(x)
for 0.5588558855
(10 dígitos decimais), deve ser arredondado para 0.558856
(6 dígitos decimais). O arredondamento deve ocorrer para o mais próximo, conforme descrito na quinta coluna, "Arredondar para o mais próximo" da tabela neste artigo do Wiki .
Restrições:
1 <= x <= 20
1 <= n <= 20
Amostras:
----
5 3
10.208333
14.541667
----
8.555 13
0.765431
-0.641092
----
9.26 10
-3.154677
-8.404354
----
6.54 12
0.253986
0.967147
----
5 1
5.000000
1.000000
----
20 20
-5364.411846
-10898.499385
----
Notas:
- As brechas padrão são proibidas.
- Funções matemáticas internas e operadores de trigonometria (sin, cos, tan, etc.), fatorial e exponenciação não podem ser usados. Você é livre para usar uma função de arredondamento embutida para estimar o resultado da computação
sin(x)
ecos(x)
o sexto dígito decimal. - Não há necessidade de lidar com entradas erradas.
- Somente caracteres ASCII podem ser usados no programa, não os caracteres chineses Unicode que permitem a compactação de código.
- Seu programa deve terminar e exibir a saída dentro de 3 segundos após a entrada.
- Sua resposta deve acompanhar o código não-bloqueado, juntamente com a explicação do código (obrigatório se o código não for imediatamente óbvio para os programadores que não estão familiarizados com sua linguagem, especialmente GolfScript, J, etc.).
- Inclua um link para um compilador on-line onde seu programa possa ser testado.
Pontuação:
A resposta com o menor tamanho de código em caracteres, incluindo espaço em branco, guias, etc. vence! O vencedor seria declarado em 21 de maio de 2014.
EDIT : 21/05/14 O vencedor é aditsu usando a linguagem CJam . O segundo colocado segue jpjacobs com a linguagem J e o segundo classificado é primo com a linguagem Perl . Parabéns a todos!
mod 2pi
operação para converter as entradas mais rapidamente seria bastante útil - é uma das muitas melhorias que o mundo real usa ao lidar com essas funções. (na verdade, mod pi e sinal de conscientização).