Вступление:
Синусоидальной из 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
. Ввод должен быть через стандартный ввод или диалоговое окно (если ваш язык не поддерживает стандартный ввод)
Выход:
[sin(x)]
[cos(x)]
Значение обоих sin(x)
и cos(x)
должно быть округлено до 6 знаков после запятой. Если sin(x)
есть 0.5588558855
(10 десятичных цифр), его следует округлить до 0.558856
(6 десятичных цифр). Округление должно происходить до ближайшего, как описано в пятом столбце «Округление до ближайшего» таблицы в этой статье вики .
Ограничения:
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, а не китайские символы Юникода, которые допускают сжатие кода.
- Ваша программа должна завершиться и отобразить вывод в течение 3 секунд после ввода.
- Ваш ответ должен сопровождать незакрашенный код вместе с объяснением кода (обязательно, если код не сразу очевиден для программистов, незнакомых с вашим языком, особенно GolfScript, J и т. Д.).
- Пожалуйста, включите ссылку на онлайн-компилятор, где ваша программа может быть протестирована.
Подсчет очков:
Ответ с наименьшей длиной кода в символах, включая пробелы, символы табуляции и т. Д., Выигрывает! Победитель будет объявлен 21 мая 2014 года.
РЕДАКТИРОВАТЬ : 21/05/14 Победитель Aditsu с использованием языка CJam . Занявший второе место следует за jpjacobs с языком J , а второй занял первое место с языком Perl . Поздравляю всех!
mod 2pi
операции для ускорения сходимости входных данных было бы весьма полезно - это одно из многих улучшений, которые реальный мир использует при работе с этими функциями. (на самом деле мод пи и знак осведомленности).