introduction
Tout le monde a entendu parler du sinus (péché) , du cosinus (cos) , de la tangente (bronzage) , de la cotangente (cot) , de la sécante (sec) et de la cosécante (csc) . Presque tous les angles en ont.
Beaucoup moins connus ou oubliés sont l' exsécant (exsec) , l' excosécant (excsc) , la versine (versin) et la coverine (cvs) . Presque tous les angles en ont aussi. Il y en a qui sont encore moins connus, mais nous nous en tiendrons simplement à ceux-ci.
J'ai créé une visualisation de ceux-ci pour l'angle θ, qui est de 45 °.
Le défi
Créez un programme qui prend une entrée d'un angle n
, en degrés, et produira:
le sinus d'angle
n
le cosinus de l'angle
n
la tangente de l'angle
n
la sécante de l'angle
n
au moins un des éléments suivants. Chaque élément supplémentaire de cette liste gagnera un bonus de -5%, pour un maximum de -25%.
exsécant d'angle
n
cosecant d'angle
n
excosécant d'angle
n
versine d'angle
n
couvre-angle
n
cotangente d'angle
n
Si votre score est décimal après avoir appliqué un bonus, arrondissez au nombre entier le plus proche.
Contribution
Vous pouvez accepter votre entrée via STDIN ou via un appel de fonction. Un seul argument,, n
sera transmis.
n
sera toujours un entier entier supérieur à 0, mais inférieur ou égal à 90.
Sortie
Voici un exemple de sortie pour sinus de 45 °. Tous les éléments de sortie doivent être dans ce format. L'ordre des articles n'a pas d'importance.
sine: 0.70710678118
Tous les éléments doivent avoir exactement 4 chiffres après la décimale (précision aux dix millièmes). Voici quelques exemples d'arrondis.
0 -> 0.0000
1 -> 1.0000
0.2588190451 -> 0.2588
5.67128181962 -> 5.6713
10 -> 10.0000
12.4661204396 -> 12.4661
Tous les résultats inexistants / non définis doivent être définis par défaut sur 0.
Exemple
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
Tableau d'affichage
Pour que votre score apparaisse sur le tableau, il doit être dans ce format:
# Language, Score
Ou si vous avez gagné un bonus:
# Language, Score (Bytes - Bonus%)
Les barrés ne devraient pas poser de problème.
la source
greater than 0
, donc 0 n'est pas autorisé?Réponses:
CJam,
9489858180 octetsLe code fait 84 octets de long et donne droit à un bonus de 5% ( cotangente et cosécante ).
Essayez-le en ligne dans l' interpréteur CJam .
Comment ça marche
la source
Julia, 162 - 10% = 144 octets
Non golfé:
la source
Pyth, 66 - 10% = 59,4 octets
Calcule le sinus, la sécante et la tangente. Ensuite, les co-fonctions sont simplement calculées via la formule
coF(x) = F(90 - x)
.la source
Mathematica (non valide pour le moment),
134121104Juste pour le plaisir, il peut sûrement être joué beaucoup
Et il devrait avoir un bonus de 5% (Cot et Csc), soit un total de 99 caractères
Exemple de sortie:
la source
0
poursec(90)
?JavaScript (ES6), 173 (182 - 5%)
Modifier révisé après clarification, maintenant le bonus est de 5%
Edit a réalisé que l'angle ne peut pas être 0
la source
Javascript ES6,
154148 (198 - 25%)Non golfé:
la source
R,
122136134 octetsExemple d'utilisation
la source
scan()/(180/pi)
->scan()*pi/180
?Perl,
182177 (236 - 25%)Exécuter avec
-n
(1 octet ajouté au score non corrigé).Rien d'extraordinaire. Il tire parti de l'
-n
entrée implicite,$_
comme argument par défaut desin
etcos
, et de mots nus pour les chaînes. La règle «undefined = 0» est codée en dur en utilisant l'opérateur ternaire?:
(elle ne s'applique que pour 90 °).Une chose I learend est que , apparemment, vous ne pouvez pas (ou ne peut pas appeler ) un sous - programme nommé
s
(oum
,y
,tr
):sub s {print 1}; s
rendementsSubstitution pattern not terminated at -e line 1
.la source
Python 3, 282 (375 - 25%)
La gestion des erreurs s'est avérée quelque peu compliquée par des erreurs à virgule flottante; à savoir,
cos(90)
est sorti à un très petit nombre au lieu de zéro.Cela ne sera jamais la meilleure réponse, mais j'aime à penser que ce pourrait être la réponse toutes fonctions valide la plus courte dans un langage non golfique qui n'a pas les fonctions trig dans l'espace de noms par défaut . ;-)
Exemple de sortie:
la source
'.4f'%(r)
plus court?Perl, 165 (193 - 15%)
Je soumets cette réponse comme une nouvelle parce que l'idée est très différente de l' autre . Veuillez me faire savoir s'il est plus approprié de remplacer ma première tentative.
Exécutez avec
-n
(1 octet ajouté).Non golfé:
Puisqu'il remplit les quatre fonctions «co», je pense qu'il est admissible à un bonus de 3 * 5% = 15%.
la source
Perl,
1009594 octetsWhoa, lotta perl répond.
la source
-n
(compte pour 1 octet) au lieu de$_=<>
. Cependant, vous devez convertir des degrés en radians et vous ne gérez pas le cas à 90 ° comme prescrit. (Avec ce dernier, il semble que vous n'êtes guère seul parmi les réponses ici.)Haskell, 159 = 186 - 15% octets
Aucun ex-trucs pour garder mon schéma de nommage intelligent et puisque je ne savais pas comment raccourcir
(\x->x-1)
.(-1)
est juste un nombre.Veuillez vous plaindre si vous voulez que je raffine (
mapM_ putStrLn
) les lignes.la source