Wprowadzenie:
Sinus z x
wyraża się wzorem:
sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - x^11/11! // and more follows...
Cosinus z x
oblicza się według wzoru:
cos(x) = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - x^10/10! // and more follows...
Zadanie:
Biorąc pod uwagę wartość x
i n
, napisz program (bez funkcji itp.), Aby wypisał wartość sin(x)
i cos(x)
poprawił upto n
warunki powyższej formuły. Załóżmy, że x
jest w radianach.
Wejście:
x n
Liczba dziesiętna x
(z maksymalnie 3 miejscami dziesiętnymi) i liczba całkowita n
. Dane wejściowe muszą być ustawione na standardowe wejście lub okno dialogowe z pytaniem (jeśli Twój język nie obsługuje standardowego wejścia)
Wynik:
[sin(x)]
[cos(x)]
Wartość obu sin(x)
i cos(x)
powinny być zaokrąglone do 6 miejsc po przecinku. Jeśli sin(x)
jest 0.5588558855
(10 cyfr dziesiętnych), należy je zaokrąglić do 0.558856
(6 cyfr dziesiętnych). Zaokrąglanie musi odbywać się do najbliższej, jak opisano w piątej kolumnie „Zaokrąglaj do najbliższej” tabeli w tym artykule Wiki .
Ograniczenia:
1 <= x <= 20
1 <= n <= 20
Próbki:
----
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
----
Uwagi:
- Standardowe luki są zabronione.
- Wbudowane funkcje matematyczne i operatory trygonometrii (sin, cos, tan itp.), Silnia i potęgowanie nie mogą być używane. Możesz użyć wbudowanej funkcji zaokrąglania do oszacowania wyniku obliczeń
sin(x)
icos(x)
do 6-tej cyfry dziesiętnej. - Nie ma potrzeby obsługi niewłaściwych danych wejściowych.
- W programie można używać tylko znaków ASCII, a nie chińskich znaków Unicode, które umożliwiają kompresję kodu.
- Twój program musi zakończyć działanie i wyświetlić dane wyjściowe w ciągu 3 sekund od wejścia.
- Twoja odpowiedź musi towarzyszyć niepoddanemu kodowi wraz z objaśnieniem kodu (obowiązkowe, jeśli kod nie jest od razu oczywisty dla programistów, którzy nie znają Twojego języka, zwłaszcza GolfScript, J itp.).
- Podaj link do kompilatora online, w którym można przetestować Twój program.
Punktacja:
Odpowiedź z najniższą długością kodu w znakach, w tym spacjami, tabulatorami itp. Wygrywa! Zwycięzca zostanie ogłoszony 21 maja 2014 r.
EDYCJA : 21.05.14 Zwycięzca jest aditsu w języku CJam . Drugie miejsce następujące jpjacobs z językiem J , a po drugie drugie miejsce jest Primo z językiem Perl . Gratulacje dla wszystkich!
mod 2pi
operacji w celu przyspieszenia konwergencji danych wejściowych byłoby raczej przydatne - jest to jedna z wielu ulepszeń, z których korzysta świat rzeczywisty podczas obsługi tych funkcji. (właściwie mod pi i znak świadomości).