Вступ:
Синусоїдальної з x
дається формулою:
sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - x^11/11! // and more follows...
Косинусного з x
дається формулою:
cos(x) = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - x^10/10! // and more follows...
Завдання:
Враховуючи значення x
і n
, напишіть програму (без функцій тощо), щоб вивести значення sin(x)
та cos(x)
виправити до n
вищезазначених формул. Припустимо, що x
в радіанах.
Вхід:
x n
Десяткове число x
(з до 3 знаків після коми) і цілим числом n
. Введення має бути в stdin або діалоговому вікні підказки (якщо ваша мова не підтримує stdin)
Вихід:
[sin(x)]
[cos(x)]
Значення обох sin(x)
і cos(x)
має бути округлене до 6 знаків після коми. Якщо sin(x)
є 0.5588558855
(10 десяткових цифр), його слід округлити до 0.558856
(6 десяткових цифр). Округлення повинно відбуватися до найближчої, як описано у п’ятому стовпці "Раунд до найближчого" таблиці в цій статті Wiki .
Обмеження:
1 <= x <= 20
1 <= n <= 20
Зразки:
----
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
----
Примітки:
- Стандартні лазівки заборонені.
- Вбудовані математичні функції та оператори тригонометрії (sin, cos, tan тощо), факториальні та експоненціації не можуть бути використані. Ви можете використовувати вбудовану функцію округлення для оцінки результатів обчислень
sin(x)
таcos(x)
до 6-ої десяткової цифри. - Не потрібно обробляти неправильні введення.
- У програмі можуть використовуватися лише символи ASCII, а не китайські Unicode, які дозволяють стиснути код.
- Ваша програма повинна припинити та відобразити результат протягом 3 секунд після введення.
- Ваша відповідь повинна супроводжувати код, який не використовується для нього, разом із поясненням коду (обов'язковий, якщо код не очевидний для програмістів, які не знайомі з вашою мовою, особливо GolfScript, J тощо).
- Додайте посилання на онлайн-компілятор, де можна перевірити вашу програму.
Оцінка:
Відповідь з найменшою довжиною коду в символах, включаючи пробіли, вкладки тощо, виграє! Переможець буде оголошений 21 травня 2014 року.
EDIT : 21/05/14 Winner - це aditsu, використовуючи мову CJam . Забігаючий слід за jpjacobs з мовою J , а другий підбіг - це прим з мовою Perl . Вітаю всіх!
mod 2pi
операції з метою швидшого зближення входів було б досить корисно - це одне з багатьох удосконалень, які використовує реальний світ при роботі з цими функціями. (власне мод пі та підписує обізнаність).