Geben Sie bei einem gegebenen Polynom in einer Variablen mit rationalen Koeffizienten einen äquivalenten Ausdruck aus, der nur 1
Variablen und bestimmte Integrale enthält. Zum Beispiel - x 2 als ∫ ausgedrückt werden kann x ∫ 1 1 1d t x d u .
E := 1 | var | ∫EEEdvar
Jede vernünftige Eingabe- / Ausgabemethode ist zulässig.
Beispiele:
Ihre Punktzahl ist die Codelänge multipliziert mit der Anzahl der ∫
in den Testfällen verwendeten Symbole. Sie sollten in der Lage sein, Ihr Programm zu bewerten. Die niedrigste Punktzahl gewinnt.
Testfälle:
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
Golfen wird schwierig, weil ich nicht nur den Code oder nur die Ausgabe spielen kann und daher nicht weiß, ob eine Änderung meine Punktzahl verbessern oder beeinträchtigen wird, bis ich es versuche, was meiner Meinung nach scheiße ist.
Lassen Sie sich nicht von der Partitur einschränken. Sie können gerne mit hauptsächlich einem Teil der Punktzahl antworten, der gut optimiert ist, auch wenn der andere schlecht abgereist ist.
quelle
chr(8747)
einer Variablen eine Zuweisung (oder ein Äquivalent) zuwende und diese als Vorzeichen verwende, ohne dass das Symbol vorkommt. Ich würde dringend empfehlen, dies zu einer Vanille-Code-Golf-Herausforderung zu machen.0=[1,1,1]
wird es immer noch als "1∫
" gezählt. Somit können Sie nur 0 Punkte auf Testfall1
undx
Antworten:
Python 2 , 315 Bytes * 5113 = 1610595 Punktzahl
Ich arbeite immer noch daran, die Partitur zu spielen. Golfen wird schwierig, weil ich nicht nur den Code oder nur die Ausgabe spielen kann und daher nicht weiß, ob eine Änderung meine Punktzahl verbessern oder beeinträchtigen wird, bis ich es versuche, was meiner Meinung nach scheiße ist.
Trotz des Ärgers beim Golfen hat mir der Kalkül gefallen.
Probieren Sie es online aus!
Führen Sie alle Testfälle aus. Um zu punkten, zählen Sie alle
[
in der Ausgabe.Das Eingabepolynom wird als Liste von (Zähler-, Nenner-) Koeffizientenpaaren in der Reihenfolge von der niedrigsten zur höchsten Potenz von genommen
x
.(0, 1)
(Null) wird für fehlende Potenzen verwendet.Die Ausgabe erfolgt mit jedem Integral, das durch eine Liste dargestellt wird
[f,t,a,b]
, um ∫ a b f d t darzustellenNachprüfung
Hier ist eine etwas weniger Golfversion, die eine gültige Mathematica-Syntax für die Integration ausgibt, die in einem Online-Notebook getestet werden kann. Leider werden Programme mit angemessener Größe in einem kostenlosen Notizbuch nicht ausgeführt.
Gehen Sie hier , scrollen Sie nach unten, "Neues Notizbuch erstellen", fügen Sie (Wolfram Language Input) ein und werten Sie aus (Umschalt + Eingabetaste) (Beachten Sie, dass die Verwendung der Eingabetaste nicht funktioniert) .
Erläuterung
Verwendet diese Gleichungen:
Links
Tool, das die Ausgabe in verschachtelte Mathematica-Funktionen konvertiert
Tool, das die Ausgabe in Mathematica konvertiert und Rekursion vermeidet
Führen Sie die Mathematica-Ausgabe auf TIO aus
Mit diesem Werkzeug erstellte Gleichungsbilder .
quelle
Z(n)
alsdef 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 Integrale = 777176 Punkte
Probieren Sie es online aus!
Verwenden Sie hauptsächlich diese beiden Gleichungen:
quelle
JavaScript (Node.js) , 220 Bytes * 616 Integrale = 135520 Punkte
Probieren Sie es online aus!
quelle
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'));