Étant donné un polynôme dans une variable avec des coefficients rationnels, sortez une expression équivalente ne contenant que des 1
variables et des intégrales définies. Par exemple, - x 2 peut être exprimé par ∫ x ∫ 1 1 1d t x d u .
E := 1 | var | ∫EEEdvar
Toute méthode d'entrée / sortie raisonnable est autorisée.
Exemples:
Votre score sera la longueur de votre code multipliée par le nombre de ∫
symboles utilisés sur les cas de test. Vous devriez pouvoir noter votre programme. Le score le plus bas l'emporte.
Cas de test:
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
Le golf va être difficile, car je ne peux pas jouer uniquement au code ou à la sortie, et je ne sais donc pas si un changement aidera ou nuira à mon score jusqu'à ce que je l'essaie, ce qui est nul à mon avis.
Ne laissez pas le score restreindre votre création. Vous êtes invités à répondre avec principalement une partie du score bien optimisée, même si l'autre est mal partie.
chr(8747)
(ou équivalent) à une variable, et en l'utilisant comme signe, n'encourant aucune occurrence du symbole. Je recommanderais fortement d'en faire un défi de golf en code vanille.0=[1,1,1]
, il est toujours compté comme "1∫
". Ainsi, vous ne pouvez obtenir que 0 score sur le cas de test1
etx
Réponses:
Python 2 , 315 octets * 5113 = 1610595 score
Je travaille toujours sur le golf du score. Le golf va être difficile, car je ne peux pas jouer uniquement au code ou à la sortie, et je ne sais donc pas si un changement aidera ou nuira à mon score jusqu'à ce que je l'essaie, ce qui est nul à mon avis.
Malgré l'ennui de jouer au golf, j'ai apprécié le calcul.
Essayez-le en ligne!
Exécutez tous les cas de test - pour marquer, compter tout
[
dans la sortie.Le polynôme d'entrée est considéré comme une liste de paires de coefficients (numérateur, dénominateur) dans l'ordre de la puissance la plus faible à la plus élevée de
x
.(0, 1)
(zéro) est utilisé pour les pouvoirs manquants.La sortie est donnée avec chaque intégrale représentée par une liste
[f,t,a,b]
pour représenter ∫ a b f d tVérification
Voici une version légèrement moins golfée qui génère une syntaxe Mathematica valide pour l'intégration, qui peut être testée dans un cahier en ligne. Malheureusement, les programmes de taille décente ne se termineront pas dans un cahier gratuit.
Allez ici , faites défiler vers le bas, "Créer un nouveau bloc-notes", collez (Wolfram Language Input) et évaluez (Shift + Enter) (Notez que l'utilisation du pavé numérique Enter ne fonctionne pas) .
Explication
Utilise ces équations:
Liens
Outil qui convertit la sortie en fonctions imbriquées Mathematica
Outil qui convertit la sortie en Mathematica, évitant la récursivité
Exécutez la sortie Mathematica sur TIO
Images d'équations réalisées avec cet outil .
la source
Z(n)
commedef 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 octets * 5113 intégrales = 777176 score
Essayez-le en ligne!
Utilisez principalement ces deux équations:
la source
JavaScript (Node.js) , 220 octets * 616 intégrales = 135520 score
Essayez-le en ligne!
la source
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'));