Introdução
Todo mundo já ouviu falar em seno (pecado) , cosseno (cos) , tangente (bronzeado) , cotangente (berço) , secante (s) e cossecante (csc) . Quase todos os ângulos os têm.
Muito menos conhecidos ou lembrados são o exsecante (exsec) , o excosecante (excsc) , a versina (versin) e a coversina (cvs) . Quase todos os ângulos têm esses também. Existem alguns que são ainda menos conhecidos, mas vamos nos ater a isso.
Eu criei uma visualização para o ângulo θ, que é 45 °.
O desafio
Crie um programa que inclua uma entrada de ângulo n
, em graus, e produza:
o seno de ângulo
n
o cosseno do ângulo
n
a tangente do ângulo
n
a secante de ângulo
n
pelo menos um dos seguintes. Cada item adicional desta lista ganhará um bônus de -5%, para um máximo de -25%.
exsecante de ângulo
n
co-ângulo de ângulo
n
excosecante de ângulo
n
versina de ângulo
n
cobertura de ângulo
n
cotangente de ângulo
n
Se sua pontuação for decimal após a aplicação de um bônus, arredondar para o número inteiro mais próximo.
Entrada
Você pode aceitar sua entrada através do STDIN ou através de uma chamada de função. Um único argumento,, n
será passado.
n
sempre será um número inteiro inteiro maior que 0, mas menor ou igual a 90.
Saída
Aqui está um exemplo da saída para seno de 45 °. Todos os itens de saída devem estar neste formato. A ordem dos itens não importa.
sine: 0.70710678118
Todos os itens devem ter exatamente 4 números após o decimal (precisão de dez milésimos). Abaixo estão alguns exemplos de arredondamentos.
0 -> 0.0000
1 -> 1.0000
0.2588190451 -> 0.2588
5.67128181962 -> 5.6713
10 -> 10.0000
12.4661204396 -> 12.4661
Quaisquer resultados inexistentes / indefinidos devem ter como padrão 0.
Exemplo
myprogram(60)
sine: 0.8660
cosine: 0.5000
tangent: 1.7321
secant: 2.0000
exsecant: 1.0000
cosecant: 1.1547
excosecant: 0.1547
versine: 0.5000
coversine: 0.1340
cotangent: 0.5774
Placar
Para que sua pontuação apareça no quadro, ela deve estar neste formato:
# Language, Score
Ou se você ganhou um bônus:
# Language, Score (Bytes - Bonus%)
Tacadas não devem causar problemas.
fonte
greater than 0
, portanto, 0 não é permitido?Respostas:
CJam,
9489858180 bytesO código tem 84 bytes de comprimento e se qualifica para um bônus de 5% ( cotangente e cossecante ).
Experimente online no intérprete CJam .
Como funciona
fonte
Julia, 162 - 10% = 144 bytes
Ungolfed:
fonte
Pitão, 66 - 10% = 59,4 bytes
Calcula o seno, secante e tangente. Então, as co-funções são simplesmente calculadas através da fórmula
coF(x) = F(90 - x)
.fonte
Mathematica (inválido no momento),
134121104Apenas por diversão, certamente pode ser jogado muito
E deve ter um bônus de 5% (Cot e Csc), totalizando 99 caracteres
Exemplo de saída:
fonte
0
parasec(90)
?JavaScript (ES6), 173 (182 - 5%)
Edição revisada após esclarecimentos, agora o bônus é de 5%
Edit percebeu que o ângulo não pode ser 0
fonte
Javascript ES6,
154148 (198 - 25%)Ungolfed:
fonte
R,
122136134 bytesExemplo de uso
fonte
scan()/(180/pi)
->scan()*pi/180
?Perl,
182177(236 - 25%)Execute com
-n
(1 byte adicionado à pontuação não corrigida).Nada chique. Ele tira proveito da
-n
entrada implícita,$_
como um argumento padrão parasin
ecos
, e palavras de barra para seqüências de caracteres. A regra “undefined = 0” é codificada no uso do operador ternário?:
(aplica-se apenas a 90 °).Uma coisa que eu learend é que, aparentemente, não se pode ter (ou não pode chamar ) uma sub-rotina com o nome
s
(oum
,y
,tr
):sub s {print 1}; s
rendimentosSubstitution pattern not terminated at -e line 1
.fonte
Python 3, 282 (375 - 25%)
O tratamento de erros acabou sendo um pouco complicado por erros de ponto flutuante; ou seja,
cos(90)
saiu para um número muito pequeno em vez de zero.Essa nunca será a resposta principal, mas eu acho que pode ser a resposta mais curta para todas as funções válidas em um idioma que não seja golfe e que não possua as funções trigonométricas no espaço de nomes padrão . ;-)
Saída de amostra:
fonte
'.4f'%(r)
seria mais curto?Perl, 165 (193 - 15%)
Estou enviando esta como uma nova resposta, porque a idéia é bem diferente da outra . Informe-me se é mais apropriado substituir minha primeira tentativa.
Execute com
-n
(1 byte adicionado).Ungolfed:
Como ele executa as quatro funções "co", acho que se qualifica para um bônus de 3 * 5% = 15%.
fonte
Perl,
1009594 bytesWhoa, lotta perl responde.
fonte
-n
(conta para 1 byte) em vez de$_=<>
. No entanto, você precisa converter de graus em radianos e não lida com o caso de 90 ° conforme prescrito. (Com este último, parece que você está quase sozinho entre as respostas aqui.)Haskell, 159 = 186 - 15% bytes
Não há coisas para manter meu esquema de nomes inteligente e como eu não sabia encurtar
(\x->x-1)
.(-1)
é apenas um número.Por favor, reclame se você quer que eu prettify (
mapM_ putStrLn
) as linhas.fonte