Introduzione:
Il seno di xè dato dalla formula:
sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - x^11/11! // and more follows...
Il coseno di xè dato dalla formula:
cos(x) = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - x^10/10! // and more follows...
Compito:
Dato il valore di xe n, scrivere un programma (nessuna funzione, ecc.) Per generare il valore sin(x)e cos(x)correggere fino ai ntermini della formula sopra. Supponiamo che xsia in radianti.
Ingresso:
x n
Un numero decimale x(con massimo 3 cifre decimali) e un numero intero n. L'input deve essere su stdin o su una finestra di dialogo del prompt (se la tua lingua non supporta stdin)
Produzione:
[sin(x)]
[cos(x)]
Il valore di entrambi sin(x)e cos(x)deve essere arrotondato al 6 decimale. Se sin(x)è 0.5588558855(10 cifre decimali), deve essere arrotondato a 0.558856(6 cifre decimali). L'arrotondamento deve avvenire al più vicino, come descritto nella quinta colonna, "Arrotondamento al più vicino", della tabella in questo articolo Wiki .
vincoli:
1 <= x <= 20
1 <= n <= 20
Campioni:
----
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
----
Appunti:
- Sono vietate le scappatoie standard .
- Le funzioni matematiche integrate e gli operatori di trigonometria (peccato, cos, abbronzatura, ecc.), Fattoriale ed esponenziale non possono essere utilizzati. Sei libero di usare una funzione di arrotondamento integrata per stimare il risultato dell'informatica
sin(x)ecos(x)la cifra decimale 6. - Non è necessario gestire input errati.
- Nel programma è possibile utilizzare solo caratteri ASCII, non quelli Unicode cinesi che consentono la compressione del codice.
- Il programma deve terminare e visualizzare l'output, entro 3 secondi dall'input.
- La tua risposta deve accompagnare il codice non golfato, insieme alla spiegazione del codice (obbligatorio se il codice non è immediatamente ovvio per i programmatori che non hanno familiarità con il tuo linguaggio, in particolare GolfScript, J, ecc.).
- Includere un collegamento a un compilatore online in cui è possibile testare il programma.
punteggio:
La risposta con la lunghezza di codice più bassa in caratteri, inclusi spazi bianchi, tabulazioni, ecc. Vince! Il vincitore sarà dichiarato il 21 maggio 2014.
EDIT : 21/05/14 Il vincitore è aditsu usando il linguaggio CJam . Il secondo classificato segue jpjacobs con il linguaggio J , mentre il secondo classificato è primo con il linguaggio Perl . Complimenti a tutti!
mod 2piun'operazione per far convergere gli input più velocemente sarebbe piuttosto utile: è uno dei molti miglioramenti che il mondo reale usa quando si occupa di queste funzioni. (in realtà mod pi e firma consapevolezza).