Introduction:
Le sinus de xest donné par la formule:
sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - x^11/11! // and more follows...
Le cosinus de xest donné par la formule:
cos(x) = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - x^10/10! // and more follows...
Tâche:
Étant donné la valeur de xet n, écrivez un programme (pas de fonctions, etc.) pour afficher la valeur de sin(x)et cos(x)corriger les ntermes de la formule ci-dessus. Supposons que ce xsoit en radians.
Contribution:
x n
Un nombre décimal x(jusqu'à 3 décimales) et un entier n. L'entrée doit être sur stdin ou une boîte de dialogue d'invite (si votre langue ne prend pas en charge stdin)
Production:
[sin(x)]
[cos(x)]
La valeur des deux sin(x)et cos(x)doit être arrondie à 6 décimales. Si sin(x)est 0.5588558855(10 chiffres décimaux), il doit être arrondi à 0.558856(6 chiffres décimaux). L'arrondi doit avoir lieu au plus proche, comme décrit dans la cinquième colonne, "Arrondir au plus proche", du tableau de cet article Wiki .
Contraintes:
1 <= x <= 20
1 <= n <= 20
Échantillons:
----
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
----
Remarques:
- Les failles standard sont interdites.
- Les fonctions mathématiques intégrées et les opérateurs de trigonométrie (sin, cos, tan, etc.), factorielle et exponentiation ne peuvent pas être utilisés. Vous êtes libre d'utiliser une fonction d'arrondi intégrée pour estimer le résultat du calcul
sin(x)etcos(x)jusqu'au 6ème chiffre décimal. - Pas besoin de gérer les mauvaises entrées.
- Seuls les caractères ASCII peuvent être utilisés dans le programme, pas ceux en chinois Unicode qui permettent la compression de code.
- Votre programme doit se terminer et afficher la sortie dans les 3 secondes suivant la saisie.
- Votre réponse doit accompagner le code non golfé, ainsi que l'explication du code (obligatoire si le code n'est pas immédiatement évident pour les programmeurs qui ne connaissent pas votre langage, en particulier GolfScript, J, etc.).
- Veuillez inclure un lien vers un compilateur en ligne où votre programme peut être testé.
Notation:
La réponse avec la plus petite longueur de code en caractères, y compris les espaces blancs, les tabulations, etc. gagne! Le gagnant sera déclaré le 21 mai 2014.
EDIT : 21/05/14 Winner est aditsu en utilisant le langage CJam . Le finaliste suit jpjacobs avec le langage J , et le deuxième finaliste est primo avec le langage Perl . Félicitations à tous!
mod 2piopération pour accélérer la convergence des entrées serait plutôt utile - c'est l'une des nombreuses améliorations que le monde réel utilise lorsqu'il s'agit de ces fonctions. (en fait mod pi et signez la conscience).