Dado um polinômio em uma variável com coeficientes racionais, produz uma expressão equivalente contendo apenas 1
variáveis e integrais definidas. Por exemplo, - x 2 pode ser expresso como ∫ x ∫ 1 1 1d t x d u .
E := 1 | var | ∫EEEdvar
Qualquer método razoável de entrada / saída é permitido.
Exemplos:
Sua pontuação será o tamanho do seu código multiplicado pelo número de ∫
símbolos usados nos casos de teste. Você deve poder pontuar seu programa. Menor pontuação ganha.
Casos de teste:
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
O golfe será difícil, porque não posso jogar apenas o código ou apenas a saída, e, portanto, não sei se uma alteração ajudará ou prejudicará minha pontuação até que eu a experimente, o que é péssimo na minha opinião.
Não deixe a pontuação restringir sua criação. Você é convidado a responder principalmente com uma parte da pontuação bem otimizada, mesmo que a outra tenha saído muito mal.
chr(8747)
(ou equivalente) a uma variável e usando-a como sinal, incorrendo em zero ocorrências do símbolo. Eu recomendo fortemente fazer deste um desafio de golfe com código de baunilha.0=[1,1,1]
, ele ainda é contado como "1∫
". Assim, você só pode obter 0 pontuação no caso de teste1
ex
Respostas:
Python 2 , 315 bytes * 5113 = 1610595 pontuação
Ainda estou trabalhando no placar. O golfe será difícil, porque não posso jogar apenas o código ou apenas a saída, e, portanto, não sei se uma alteração ajudará ou prejudicará minha pontuação até que eu a experimente, o que é péssimo na minha opinião.
Apesar do aborrecimento de jogar isso, eu gostei do cálculo.
Experimente online!
Execute todos os casos de teste - para pontuar, conte tudo
[
na saída.O polinômio de entrada é tomado como uma lista de pares de coeficientes (numerador, denominador) na ordem da menor para a maior potência de
x
.(0, 1)
(zero) é usado para poderes ausentes.A saída é fornecida com cada integral representada por uma lista
[f,t,a,b]
para representar ∫ a b f d tVerificação
Aqui está uma versão um pouco menos eficiente que gera uma sintaxe válida do Mathematica para integração, que pode ser testada em um notebook online. Infelizmente, programas de tamanho decente não serão concluídos em um notebook grátis.
Vá aqui , role para baixo, "Create New Notebook", cole (Wolfram Language Input) e avalie (Shift + Enter) (Observe que o uso do teclado numérico Enter não funciona) .
Explicação
Usa estas equações:
Ligações
Ferramenta que converte a saída em funções aninhadas do Mathematica
Ferramenta que converte a saída em Mathematica, evitando recursão
Execute a saída do Mathematica no TIO
Imagens de equações feitas com esta ferramenta .
fonte
Z(n)
comodef 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 bytes * 5113 integrais = pontuação 777176
Experimente online!
Use principalmente estas duas equações:
fonte
JavaScript (Node.js) , 220 bytes * 616 integrais = pontuação 135520
Experimente online!
fonte
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'));