Застосуйте невизначений інтеграл до заданого рядка. Єдині правила, якими ви будете користуватися, визначені як такі:
∫cx ^ (n) dx = (c / (n + 1)) x ^ (n + 1) + C, n ≠ -1 c, C і n - всі постійні.
Технічні умови:
- Ви повинні мати можливість інтегрувати поліноми з будь-якою з можливих особливостей:
- Коефіцієнт, можливо, частка у форматі
(numerator/denominator)
. - Визнання того, що e і π - константи, і при їх використанні вміти утворювати дроби або вирази, що містять їх (можна утримувати у дробі на зразок
(e/denominator)
або(numerator/e)
, або, якщо в експонентахx^(e+1)
)- Крім цих двох спеціальних констант, всі коефіцієнти будуть раціональними, реальними числами.
- Експонент, можливо, частка, у форматі
x^(exponent)
- Вирази з ними
e
чиπ
в них, окрім самих себе, не будуть виражені. (вам не доведеться інтегрувати такі речі, якx^(e+1)
, але ви можете інтегруватисяx^(e)
)
- Вирази з ними
- Може використовувати не-х 1-змінних змінних (тобто
f
)- Це лише для діапазонів 65-90 та 97-122 ASCII.
- Вам не потрібно використовувати правила ланцюга або інтегрувати
x^(-1)
.
- Коефіцієнт, можливо, частка у форматі
- Вихід повинен мати відступи (поділ між термінами, тобто
x^2 + x + C
. - Якщо невідомо, як інтегруватися з перерахованими вище функціями, програма повинна роздрукуватись
"Cannot integrate "+input
. - Це повинна бути повна програма.
Бонуси:
- -10%, якщо ви надрукуєте "гарні" експоненти, відформатовані для розмітки (замість
x^2
,x<sup>2</sup>
). - -10%, якщо ви роздрукуєте рівняння (тобто
∫xdx = (1/2)x^2 + C
)
Приклади:
Вхід:
x
Вихід:
(1/2)x^(2) + C
Вхід:
-f^(-2)
Вихід:
f^(-1) + C
Вхід:
(1/7)x^(1/7) + 5
Вихід:
(1/56)x^(8/7) + 5x + C
Вхід:
πx^e
Вихід:
(π/(e+1))x^(e+1) + C
Вхід:
(f+1)^(-1)
Вихід:
Cannot integrate (f+1)^(-1)
e
та π
, єдиними значеннями коефіцієнтів будуть раціональні числа? Тобто не потрібно обробляти багатовимірні многочлени? 2. Коли ви говорите " non-x 1-char змінних ", ви обмежуєтесь a-zA-Z
чи маєте намір включити інші діапазони Unicode?
ln(x) + C
на вклад x^(-1)
?
x^(e+1)
це не буде інтеграндом, але це може бути результатом інтеграції. 2) Не буде багато змінних літер. 3) Так. 4) Так, але так і має бути (1/56)x^(1/7+1) + C
(я помилився в прикладах).