Introducción
Todo el mundo ha oído hablar de seno (sin) , coseno (cos) , tangente (tan) , cotangente (cot) , secante (seg) y cosecante (csc) . Casi todos los ángulos los tienen.
Mucho menos conocidos, o recordados, son el exsecante (exsec) , el excosecante (excsc) , la versina (versin) y la cubriente (cvs) . Casi todos los ángulos tienen esos también. Hay algunos que son aún menos conocidos, pero nos limitaremos a esto.
He creado una visualización de estos para el ángulo θ, que es de 45 °.

El reto
Cree un programa que tome una entrada de un ángulo n, en grados, y genere:
el seno del ángulo
nel coseno del ángulo
nla tangente de angulo
nla secante de ángulo
nal menos uno de los siguientes. Cada artículo adicional de esta lista obtendrá un bono de -5%, por un máximo de -25%.
exsecante de ángulo
ncosecante de ángulo
nexcosecante de ángulo
nversina de ángulo
ncubreobjetos de ángulo
ncotangente de ángulo
n
Si su puntaje es un decimal después de aplicar un bono, redondee al número entero más cercano.
Entrada
Puede aceptar su entrada a través de STDIN o mediante una llamada de función. Se npasará un único argumento,
n siempre será un entero entero mayor que 0, pero menor o igual que 90.
Salida
Aquí hay un ejemplo de la salida para seno de 45 °. Todos los elementos de salida deben estar en este formato. El orden de los artículos no importa.
sine: 0.70710678118
Todos los elementos deben tener exactamente 4 números después del decimal (precisión a las diezmilésimas). A continuación se presentan algunos ejemplos de redondeo.
0 -> 0.0000
1 -> 1.0000
0.2588190451 -> 0.2588
5.67128181962 -> 5.6713
10 -> 10.0000
12.4661204396 -> 12.4661
Cualquier resultado inexistente / indefinido debería ser 0 por defecto.
Ejemplo
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
Marcador
Para que su puntaje aparezca en el tablero, debe estar en este formato:
# Language, Score
O si ganaste un bono:
# Language, Score (Bytes - Bonus%)
Los tachados no deberían causar un problema.
fuente

greater than 0, entonces 0 no está permitido?Respuestas:
CJam,
9489858180 bytesEl código tiene 84 bytes de longitud y califica para una bonificación del 5% ( cotangente y cosecante ).
Pruébelo en línea en el intérprete de CJam .
Cómo funciona
fuente
Julia, 162 - 10% = 144 bytes
Sin golf:
fuente
Pyth, 66-10% = 59.4 bytes
Calcula el seno, la secante y la tangente. Luego, las funciones compartidas se calculan simplemente mediante la fórmula
coF(x) = F(90 - x).fuente
Mathematica (no válido en este momento),
134121104Solo por diversión, seguramente se puede jugar mucho golf
Y debe tener una bonificación del 5% (Cot y Csc), por lo tanto, con un valor de 99 caracteres.
Salida de ejemplo:
fuente
0parasec(90)?JavaScript (ES6), 173 (182 - 5%)
Editar revisado después de la aclaración, ahora la bonificación es del 5%
Editar se dio cuenta de que el ángulo no puede ser 0
fuente
Javascript ES6,
154148 (198 - 25% de)Sin golf:
fuente
R,
122136134 bytesEjemplo de uso
fuente
scan()/(180/pi)->scan()*pi/180?Perl,
182177 (236 - 25%)Ejecutar con
-n(1 byte agregado a la puntuación no corregida).Nada sofisticado. Aprovecha la
-nentrada implícita,$_como argumento predeterminado parasinycos, y las palabras simples para cadenas. La regla "undefined = 0" está codificada al usar el operador ternario?:(se aplica solo para 90 °).Una cosa que learend es que, al parecer, no se puede tener (o no se puede llamar ) una subrutina llamada
s(om,y,tr):sub s {print 1}; srendimientosSubstitution pattern not terminated at -e line 1.fuente
Python 3, 282 (375 - 25%)
El manejo de errores resultó ser algo complicado por errores de punto flotante; a saber,
cos(90)salió a un número muy pequeño en lugar de cero.Nunca será la respuesta principal, pero me gusta pensar que podría ser la respuesta válida más corta para todas las funciones en un lenguaje que no sea de golf que no tenga las funciones trigonométricas en el espacio de nombres predeterminado . ;-)
Salida de muestra:
fuente
'.4f'%(r)seria mas corto?Perl, 165 (193 - 15%)
Presento esto como una nueva respuesta porque la idea es bastante diferente de la otra . Avíseme si es más apropiado reemplazar mi primer intento.
Ejecutar con
-n(1 byte agregado).Sin golf:
Como cumple las cuatro funciones "co", creo que califica para un bono de 3 * 5% = 15%.
fuente
Perl,
1009594 bytesWhoa, responde Lotta Perl.
fuente
-n(cuenta para 1 byte) en lugar de$_=<>. Sin embargo, debe convertir de grados a radianes, y no maneja el caso de 90 ° según lo prescrito. (Con esto último, parece que no estás solo entre las respuestas aquí.)Haskell, 159 = 186 - 15% bytes
No ex-cositas para mantener mi ingenioso esquema de nombres y ya que no sabía cómo acortar
(\x->x-1).(-1)Es solo un número.Por favor, quejarse si quiere que embellezca (
mapM_ putStrLn) las líneas.fuente