Wenden Sie ein unbestimmtes Integral auf eine bestimmte Zeichenfolge an. Die einzigen Regeln, die Sie verwenden, sind als solche definiert:
Cx ^ (n) dx = (c / (n + 1)) x ^ (n + 1) + C, n ≤ –1 c, C und n sind alle Konstanten.
Spezifikationen:
- Sie müssen in der Lage sein, Polynome mit einer der möglichen Funktionen zu integrieren:
- Ein Koeffizient, möglicherweise ein Bruch im Format
(numerator/denominator)
. - Erkennen, dass e und π Konstanten sind und in ihrer Verwendung Brüche oder Ausdrücke bilden können, die sie enthalten (kann in einem Bruch wie
(e/denominator)
oder(numerator/e)
oder, falls in Exponenten, enthalten seinx^(e+1)
)- Abgesehen von diesen beiden speziellen Konstanten sind alle Koeffizienten rationale reelle Zahlen.
- Ein Exponent, möglicherweise ein Bruch, im Format
x^(exponent)
- Ausdrücke mit
e
oderπ
in ihnen, abgesehen von sich selbst, werden nicht in Exponenten sein. (Sie müssen keine Dinge wie integrierenx^(e+1)
, aber Sie könnten integrierenx^(e)
)
- Ausdrücke mit
- Kann nicht-x 1-Zeichen-Variablen verwenden (dh
f
)- Dies gilt nur für die ASCII-Bereiche 65-90 und 97-122.
- Sie müssen keine Kettenregel verwenden oder integrieren
x^(-1)
.
- Ein Koeffizient, möglicherweise ein Bruch im Format
- Die Ausgabe muss mit einer Auffüllung versehen sein (Trennung zwischen Begriffen, d
x^2 + x + C
. H. - Wenn nicht bekannt ist, wie die oben genannten Funktionen integriert werden sollen, sollte das Programm ausgedruckt werden
"Cannot integrate "+input
. - Es muss ein volles Programm sein.
Boni:
- -10%, wenn Sie die "hübschen" Exponenten ausdrucken, die für Abschriften formatiert sind (anstelle von
x^2
,x<sup>2</sup>
). - -10%, wenn Sie die Gleichung ausdrucken (dh
∫xdx = (1/2)x^2 + C
)
Beispiele:
Eingang:
x
Ausgabe:
(1/2)x^(2) + C
Eingang:
-f^(-2)
Ausgabe:
f^(-1) + C
Eingang:
(1/7)x^(1/7) + 5
Ausgabe:
(1/56)x^(8/7) + 5x + C
Eingang:
πx^e
Ausgabe:
(π/(e+1))x^(e+1) + C
Eingang:
(f+1)^(-1)
Ausgabe:
Cannot integrate (f+1)^(-1)
e
undπ
die einzigen Werte in Koeffizienten rationale Zahlen sind. Dh es ist nicht notwendig, multivariable Polynome zu behandeln? 2. Wenn Sie " non-x 1-char variables " sagen , beschränken Sie sich daraufa-zA-Z
oder beabsichtigen Sie, andere Unicode-Bereiche einzuschließen ?ln(x) + C
für eine Eingabe von drucktx^(-1)
?x^(e+1)
wird kein Integrand, aber es kann das Ergebnis einer Integration sein. 2) Es gibt keine Variablen mit mehreren Buchstaben. 3) Ja. 4) Ja, aber es sollte sein(1/56)x^(1/7+1) + C
(ich habe einen Fehler in den Beispielen gemacht).Antworten:
Mathematica 478 * 0,9 = 430,2
Dies erzeugt eine wahre Funktion φ, die einen String als Eingabe annimmt. (Zählt das als vollständiges Programm für Mathematica?)
Die ungolfed Version wäre:
Beachten Sie, dass die griechischen Buchstaben erforderlich sind, um alle anderen Buchstaben in der Eingabe verwenden zu können.
quelle
MATLAB, 646 x 0,9 = 581,4 Bytes
Dies ist derzeit noch in Arbeit, da MATLABs mit symbolischen Integrationsfunktionen ausgestattet sind. Derzeit wurden die Anforderungen aktualisiert, sodass das Format jetzt den Anforderungen entspricht. Es qualifiziert sich auch für den zweiten -10% Bonus.
Wenn jemand Vorschläge zur Korrektur der Ausgabe machen oder diesen Code als Grundlage für eine andere Antwort verwenden möchte, zögern Sie nicht :). Wenn ich die Zeit finde, spiele ich weiter damit und überlege, wie ich die Ausgabe neu formatieren kann.
Update: Ok, also nach ein bisschen mehr Arbeit ist hier, wie der Code derzeit steht. Es ist noch in Arbeit, aber jetzt näher an der gewünschten Ausgabe.
Hier sind einige Beispiele dessen, was derzeit produziert wird. Wie Sie sehen, ist es nicht ganz richtig, aber immer näher.
Eingänge:
Ausgänge:
quelle
x^(8/7)/8
die mathematisch korrekte Form nicht so ist, wie Sie es möchten -(1/8)x^(8/7)
.