Zastosuj całkę nieoznaczoną do danego ciągu. Jedyne reguły, których będziesz używać, są zdefiniowane jako takie:
∫cx ^ (n) dx = (c / (n + 1)) x ^ (n + 1) + C, n ≠ -1 c, C i n są stałymi.
Dane techniczne:
- Musisz być w stanie zintegrować wielomiany z dowolną z możliwych funkcji:
- Współczynnik, być może ułamek formatu
(numerator/denominator)
. - Rozpoznanie, że e i π są stałymi, a przy ich użyciu mogą być w stanie tworzyć ułamki lub wyrażenia je zawierające (mogą być przechowywane w ułamkach takich jak
(e/denominator)
lub(numerator/e)
, lub w wykładnikachx^(e+1)
)- Oprócz tych dwóch specjalnych stałych wszystkie współczynniki będą liczbami wymiernymi, rzeczywistymi.
- Wykładnik, być może ułamek, w formacie
x^(exponent)
- Wyrażenia z
e
lubπ
w nich, poza sobą, nie będą w wykładnikach. (nie będziesz musiał integrować takich rzeczyx^(e+1)
, ale możesz się zintegrowaćx^(e)
)
- Wyrażenia z
- Może używać zmiennych innych niż x 1-char (tj.
f
)- Dotyczy to tylko zakresów ASCII 65–90 i 97–122.
- Nie musisz używać reguły łańcuchowej ani integracji
x^(-1)
.
- Współczynnik, być może ułamek formatu
- Dane wyjściowe muszą mieć wypełnienie (separacja między terminami, tj
x^2 + x + C
. - Jeśli nie wiadomo, jak zintegrować się z powyższymi funkcjami, program powinien wydrukować
"Cannot integrate "+input
. - To musi być pełny program.
Bonusy:
- -10%, jeśli wydrukujesz „ładne” wykładniki sformatowane dla markdown (zamiast
x^2
,x<sup>2</sup>
). - -10%, jeśli wydrukujesz równanie (tj.
∫xdx = (1/2)x^2 + C
)
Przykłady:
Wkład:
x
Wydajność:
(1/2)x^(2) + C
Wkład:
-f^(-2)
Wydajność:
f^(-1) + C
Wkład:
(1/7)x^(1/7) + 5
Wydajność:
(1/56)x^(8/7) + 5x + C
Wkład:
πx^e
Wydajność:
(π/(e+1))x^(e+1) + C
Wkład:
(f+1)^(-1)
Wydajność:
Cannot integrate (f+1)^(-1)
e
i π
jedynymi wartościami współczynników będą liczby wymierne? Czyli nie jest konieczne obsługiwanie wielomianów wielowymiarowych? 2. Kiedy mówisz „ zmienne inne niż x 1-char ”, czy ograniczasz się, a-zA-Z
czy zamierzasz uwzględnić inne zakresy Unicode?
ln(x) + C
dane wejściowe x^(-1)
?
x^(e+1)
nie będzie to integrand, ale może być wynikiem integracji. 2) Nie będzie wielu zmiennych literowych. 3) Tak. 4) Tak, ale powinno być (1/56)x^(1/7+1) + C
(popełniłem błąd w przykładach).