Справа з рівняннями за відсутності хорошого редактора рівнянь є безладним і неприємним. Наприклад, якби я хотів висловити інтеграл та його рішення, це може виглядати приблизно так:
Інтегральний [x ^ 3 e ^ (- mx ^ 2 b / 2), dx] = - ((2 + b m x ^ 2) / (b ^ 2 * e ^ ((b m x ^ 2) / 2) * m ^ 2))
На integrals.wolfram.com це називається "форма введення". Ніхто не любить бачити рівняння у "формі введення". Ідеальним способом візуалізації цього рівняння було б:
(Вольфрам називає це "традиційною формою")
Для цього кодогольфа напишіть програму, яка візьме деяке рівняння у "формі введення" як вхідне та візуалізує це рівняння в уявленні ascii "традиційної форми". Отже, для цього прикладу ми можемо отримати щось подібне:
/\ 3
| x
| ------------ dx =
| 2
\/ (m x b)/2
e
2
2 + b m x
-(-----------------)
2
2 (b m x )/2 2
b e m
Вимоги:
- Не перетасовуйте, не спрощуйте та не переставляйте введення жодним чином. Візуалізуйте його в точно такому ж вигляді, як було описано введенням.
- Підтримуйте чотири основні математичні операції (+, -, *, /). Якщо не множити два сусідніх числа, символ * мається на увазі і його слід опустити.
- Підтримка інтеграції (як показано в прикладі вище) не потрібно. Можливість підтримувати введення за допомогою таких функцій, як Integrate [...] або Sqrt [...] - це бонус.
- Потужність підтримки, як показано у наведеному вище прикладі (n-й корінь можна моделювати, піднявши до 1 / n-го потужності).
- Надлишкові дужки (як, наприклад, навколо знаменника та чисельника великої дроби у наведеному вище прикладі) слід опустити.
- Вираз у знаменнику та чисельнику дробу має бути зосереджено над і горизонтальною лінією поділу.
- Ви можете вибрати, чи слід починати новий рядок після знака рівності. У наведеному вище прикладі запускається новий рядок.
- Порядок операцій повинен бути точно таким же у виході, як і на вході.
Деякі приклади введення та пов'язаного виводу для тестування вашого рішення:
Вхід:
1/2 + 1/3 + 1/4
Вихід:
1 1 1
- + - + -
2 3 4
Вхід:
3x^2 / 2 + x^3^3
Вихід:
2 3
3 x 3
---- + x
2
Вхід:
(2 / x) / (5 / 4^2)
Вихід:
2
-
x
--
5
--
2
4
Вхід:
(3x^2)^(1/2)
Вихід:
2 1/2
(3 x )