Если дан многочлен от одной переменной с рациональными коэффициентами, выведите эквивалентное выражение, содержащее только 1
переменные и определенные интегралы. Например, - x 2 может быть выражено как ∫ x ∫ 1 1 1d t x d u .
E := 1 | var | ∫EEEdvar
Разрешен любой разумный метод ввода / вывода.
Примеры:
Ваша оценка будет равна длине вашего кода, умноженной на количество ∫
символов, используемых в тестовых примерах. Вы должны быть в состоянии оценить свою программу. Самый низкий балл побеждает.
Тестовые случаи:
4/381*x^2+49/8*x^3-17/6
311/59*x^2-92/9*x^3-7/15*x
333/29*x^3+475/96*x^8
Гольф будет трудным, потому что я не могу сыграть в гольф только код или только вывод, и поэтому я не знаю, поможет ли изменение или повредит моему счету, пока я не попробую, что, на мой взгляд, отстой.
Не позволяйте счету ограничивать ваше творение. Вы можете ответить, в основном, с одной частью хорошо оптимизированной оценки, даже если с другой плохо ушли.
chr(8747)
(или эквивалентную) переменной и используя ее в качестве знака, что приведет к нулевому вхождению символа. Я настоятельно рекомендую сделать это ванильным кодом для игры в гольф.0=[1,1,1]
, он по-прежнему считается «1∫
». Таким образом, вы можете получить только 0 баллов за тестовый случай1
иx
Ответы:
Python 2 , 315 байт * 5113 = 1610595 баллов
Я все еще работаю над игрой в гольф. Гольф будет трудным, потому что я не могу сыграть в гольф только код или только вывод, и поэтому я не знаю, поможет ли изменение или повредит моему счету, пока я не попробую, что, на мой взгляд, отстой.
Несмотря на раздражение от игры в гольф, я получил удовольствие от исчисления.
Попробуйте онлайн!
Запустить все тестовые случаи - забить, подсчитать все
[
в выводе.Входной многочлен берется в виде списка пар коэффициентов (числитель, знаменатель) в порядке от самой низкой до самой высокой степени
x
.(0, 1)
(ноль) используется для пропущенных сил.Выходные данные даются с каждым интегралом, представленным списком,
[f,t,a,b]
представляющим a b f d tверификация
Вот немного менее удобная версия, которая выводит действительный синтаксис Mathematica для интеграции, который может быть протестирован в онлайн-ноутбуке. К сожалению, программы приличного размера не будут завершены в бесплатной записной книжке.
Перейдите сюда , прокрутите вниз, «Создать новую записную книжку», вставьте (ввод на языке Wolfram) и оцените (Shift + Enter) (обратите внимание, что использование ввода с помощью num-pad не работает) .
объяснение
Использует эти уравнения:
связи
Инструмент, который преобразует выходные данные во вложенные функции Mathematica
Инструмент, который преобразует вывод в Mathematica, избегая рекурсии
Запустите вывод Mathematica на TIO
Уравнение изображения, сделанные с помощью этого инструмента .
источник
Z(n)
какdef Z(n):return N(Z(-n)) if n<0 else[1,t,1,1] if n<1 else 1 if n<2 else[1,t,N(1),Z(n-1)]
?Z=lambda n:N(Z(-n))if n<0else[1,t,N(1),Z(n-1)]if n>1else[[1,t,1,1],1][n]
JavaScript (Node.js) , 152 байта * 5113 интегралов = 777176 баллов
Попробуйте онлайн!
В основном используйте эти два уравнения:
источник
JavaScript (Node.js) , 220 байт * 616 интегралов = 135520 баллов
Попробуйте онлайн!
источник
function unpack(x) { return x instanceof Array ? `\\int_{${unpack(x[2])}}^{${unpack(x[3])}}${unpack(x[0])}\\text d${unpack(x[1])}` : x }; console.log (unpack(F([[0, 1], [-7, 15], [311, 59], [-92, 9]])).replace(/\{(.)\}/g,'$1'));