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
n
el coseno del ángulo
n
la tangente de angulo
n
la secante de ángulo
n
al 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
n
cosecante de ángulo
n
excosecante de ángulo
n
versina de ángulo
n
cubreobjetos de ángulo
n
cotangente 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 n
pasará 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
0
parasec(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
-n
entrada implícita,$_
como argumento predeterminado parasin
ycos
, 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}; s
rendimientosSubstitution 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