Für diejenigen, die es nicht wussten, ist Sigma ein griechischer Buchstabe, der in der Mathematik häufig als Summierungszeichen verwendet wird. Berechnen Sie die Summe der Ergebnisse für für jedes wenn eine Zeichenfolge gegeben ist, die einen von abhängigen Ausdruck darstellt , den wir als E ( k ) bezeichnen . Kurz gesagt, Sie sollten so finden, dass:
Ein Beispiel für einen Ausdruck:
Technische Daten
- Sie sind garantiert:
- dass der Ausdruck gültig ist, also keine Fehler enthält und dass er von der gewählten Syntax abhängt (zB: wenn Sie nur unterstützen
2*k
, wird es keine geben2k
) - haben nur Werte unter den Ergebnissen definiert, so dass keine Werte mögen
1/0
,inf
odernan
wird angezeigt
- dass der Ausdruck gültig ist, also keine Fehler enthält und dass er von der gewählten Syntax abhängt (zB: wenn Sie nur unterstützen
- Sie können davon ausgehen, dass der obige Ausdruck den Grenzwerten der Programmiersprache Ihrer Wahl entspricht, sodass es nicht zu Überläufen oder anderen Fehlern im Zusammenhang mit Grenzwerten kommt
- Es kann jedes andere Nicht-Leerzeichen-ASCII-Zeichen anstelle von
k
ausgewählt werden - Ihr Programm muss die folgenden Vorgänge unterstützen:
- Zugabe (
+
,plus()
,add()
,sum()
) - Subtraktion (
-
,minus()
,subtract()
) - Potenzierung (
**
,^
,pow()
oder andere, sollte festgelegt werden), mit Unterstützung zu negativen Exponenten Basen und - Quadratwurzel in Form von
sqrt(k)
,k^0.5
,k**0.5
oder aber , was Sie wollen - Multiplikation und Division
- Zugabe (
- Die Einreichung kann entweder ein vollständiges Programm oder eine Funktion sein, wobei die Verwendung erwähnt wird
- Jedes nachfolgende / führende Leerzeichen ist bei der Ausgabe zulässig
- Mindestgenauigkeit: 2 Nachkommastellen
Testfälle (mit k
)
+---------------+--------------+
| Input = E(k) | Output |
|---------------+--------------|
|2*k | 30 |
|---------------+--------------|
|sqrt(k) | 8.38 | (* with minimum decimal precision)
|---------------+--------------|
|k+k/2+k**2 | 77.5 |
|---------------+--------------|
|k**2 | 55 |
+---------------+--------------+
Die Punktzahl ist die Anzahl der Bytes (der Quellen- und Compiler-Flags). Die Einsendung mit der niedrigsten Bewertung gewinnt, wobei zu beachten ist, dass diese Lücken strengstens verboten sind. Hier ist ein Python-Pseudocode, um die Dinge klarer zu machen.
code-golf
math
number
arithmetic
Mr. Xcoder
quelle
quelle
plus()
statt+
? (Gleiche Fragen auch für alle anderen Betreiber)plus()
,add()
,sum()
und Äquivalente sind erlaubt. Siehe die Bearbeitung.N N2/+N2**+
.E(x)
@ComradeSparklePonyAntworten:
Gelee , 5 Bytes
Probieren Sie es online!
Geben Sie eine gültige Jelly-Monadic-Kette ein (ich habe sie in meinem Link angegeben).
Wie es funktioniert
quelle
Mathematica,
171413 BytesVielen Dank an Ian Miller für das Speichern von 3 Bytes.
Vielen Dank an LegionMammal978 für die Einsparung von 1 Byte.
Die Eingabe sollte ein tatsächlicher Ausdruck sein
k
, der beispielsweise Folgendes enthält :quelle
1,
dafürSum
.N@#~Sum~{k,5}&
Python 3 ,
4037 Bytes3 Bytes danke an Arnauld.
Tricks für den Testumfang \ o /
Probieren Sie es online!
Verwendet
k**0.5
anstelle vonsqrt(k)
.quelle
JavaScript (ES7),
3130 BytesVerwendet
k**0.5
fürsqrt(k)
.Probieren Sie es online!
quelle
05AB1E ,
876 BytesProbieren Sie es online!
Die Eingabe erfolgt in Postfix-Notation und verwendet die Variable N . 05AB1E ist eine stapelbasierte Sprache, daher funktioniert nur die Postfix-Notation.
Format von
E(N)
: Schreiben Sie die Nummer (n), mit denen Sie die Operation ausführen möchten, und schreiben Sie dann das Vorzeichen der Operation. Zum Beispiel3+4
wäre3 4+
,3*4+2*3
wäre3 4* 2 3* +
. Beachten Sie auch , dass diese Anwendungent
stattsqrt
, undm
statt**
, sosqrt(N)
wärenNt
.Erläuterung:
quelle
Oktave ,
50463129 BytesProbieren Sie es online!
Die Potenzierung wird mit dem Caret
.^
und die Multiplikation mit bezeichnet.*
.Dies deklariert eine anonyme Funktion, die Argumente aufnimmt
d
. Es setztk
gleich dem Bereich1:5
und summiert die ausgewertetend
und gibt es zurück.quelle
Japt , 10 Bytes
Die Eingabezeichenfolge sollte eine Variable in Großbuchstaben enthalten
K
.sqrt(K)
sollte eingegeben werden alsK**0.5
.Probieren Sie es online!
Erläuterung
eval
Das Zielfernrohr hat nicht zu meinen Gunsten funktioniert. musste die ZählvariableX
als global neu definierenK
.quelle
Ox
direkte Transpiliereneval(
dabei helfen würde ...Oktave,
2523 BytesProbieren Sie es online!
Die Potenzierung wird als bezeichnet
.^
quelle
APL (Dyalog) , 9 Bytes
Probieren Sie es online!
Addition ist
+
, Subtraktion ist-
, Multiplikation ist×
, Division ist÷
Exponentiation ist*
und Ausführung ist von rechts nach links, verwenden Sie also,()
um Ausdrücke zu gruppieren.Die Eingabe erfolgt in Bezug auf
k
.Erläuterung
Und hier ist eine Lösung , die Züge als Eingabe (wie die Jelly Antwort) führt:
+/(⍎⎕)¨⍳5
.quelle
Common Lisp, 55 Bytes
Probieren Sie es online aus
andere, längere (58 Byte) Version - wird kürzer, wenn Sie eine Summe von 1 bis 7 erstellen.
Noch eine andere und längere Methode (
65 bis64 Bytes) - definiert keine Funktion - fügt einfach Ihren Ausdruck in eine Schleife ein. Sollte für größere Summen kürzer werden.quelle
Swift,
202184 BytesAus irgendeinem Grund wird dies nur lokal ausgeführt :(.
Hier ist eine Erklärung, was ich tue:
Vielen Dank an @Mr. Xcoder zum Speichern von 15 Bytes!
quelle
TI-Basic, 12 Bytes
Rufen Sie mit auf
"string":prgmNAME
, wostring
sich ein gültiger TI-Basic-Ausdruck von befindetK
.quelle
Ans->u:sum(u(1,5
Gestapelt , 16 Bytes
Probieren Sie es online!
5~>
ist ein Bereich von 1 bis einschließlich 5.2/
macht eine funk dyadisch,"
ist paarweise und!
wird ausgeführt. Dieser bildet somit den Bereich[1, 5]
mit der Eingabe ab, die dann nach Festlegung des zu definierenden Bereichselements ausgewertet wirdk
. Dann werden die Ergebnisse summiert.quelle
dc ,
3124 bytesDie Eingabe muss in umgekehrter polnischer Schreibweise (auch als Postfix-Schreibweise bezeichnet) erfolgen und in eckigen Klammern (
[]
) eingeschlossen sein mit:K
Ersetzenk
als Parameter;+
Hinzufügung darstellend;-
Subtraktion darstellen und_
gefolgt von einer beliebigen Zahl, die eine negative Zahl darstellt;*
Multiplikation darstellen;/
Repräsentanz der Division;^
Repräsentation der Potenzierung;v
repräsentiert die Quadratwurzel.Zum Beispiel
-2*k+k+3*k**2+k**0.5-k/2
würde als eingegeben werden[_2K*K+K2^3*+Kv+K2/-]
. Dies macht sich die Tatsache zunutze, dassK
es sich um einendc
Befehl handelt, der die aktuelle Genauigkeit zurückgibt (ursprünglich festgelegt auf1
). Am Ende wird daher die Ausgabe mit einer Genauigkeit von zurückgegeben6
.Probieren Sie es online!
quelle
R , 35 Bytes
Probieren Sie es online!
TIO Link beinhaltet auch eine Funktionslösung (38 Bytes)
quelle
Tcl , 58 Bytes
Probieren Sie es online!
Wenn es nur mit ganzen Zahlen klappen würde, könnte ich mehr Golf spielen!
quelle