Herausforderung
Schreiben Sie ein Programm, um die ersten N (<= 10 ^ 3) Stellen von e zu berechnen .
Ihr Programm sollte eine Ganzzahl N als Eingabe verwenden.
Eingang:
100
Ausgabe:
2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427
Eingang:
7
Ausgabe:
2.718282
Eingang:
1000
Ausgabe:
2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427427466391932003059921817413596629043572900334295260595630738132328627943490763233829880753195251019011573834187930702154089149934884167509244761460668082264800168477411853742345442437107539077744992069551702761838606261331384583000752044933826560297606737113200709328709127443747047230696977209310141692836819025515108657463772111252389784425056953696770785449969967946864454905987931636889230098793127736178215424999229576351482208269895193668033182528869398496465105820939239829488793320362509443117301238197068416140397019837679320683282376464804295311802328782509819455815301756717361332069811250996181881593041690351598888519345807273866738589422879228499892086805825749279610484198444363463244968487560233624827041978623209002160990235304369941849146314093431738143640546253152096183690888707016768396424378140592714563549061303107208510383750510115747704171898610687396965521267154688957035035
Kürzeste Lösung gewinnt!
e-digits
Befehl auf yubnub.org zB yubnub.org/parser/parse?command=e-digits+1000 dass Anwendungen Wolframalpha wolframalpha.com/input/...Python, 69
Berechnet N + 2 Iterationen der Standard-Potenzreihe für e.
quelle
J, 20 ... ish.
Computergestützt, aber ... sehr ineffizient. Mit n definiert (20):
Als monadische Funktion (32):
Als implizite Funktion (33, fest):
quelle
+9
.(0 j.<:1000)":+/%!i.x:450
dauert dies nur einige Sekunden.(0 j.<:n)":+/%!i.999x
, Dann stillschweigend:(+/%!i.999x)":~0 j.<:
)Python, 67
quelle
from decimal import*
und beide entfernend.
import *
wird_One
aufgrund des führenden Unterstrichs nicht importiert .05AB1E,
432 BytesDurchgestrichen 4 ist immer noch regulär 4; (
Vielen Dank an @Adnan für ein Byte.
Verwendet CP-1252 Codierung.
Erläuterung:
Aktualisieren:
Entfernen
I
, dažt
die Eingabe sowieso übernommen wird, wenn sich keine auf dem Stapel befindet.quelle
ž
Zeichen ist 1 Byte in der CP-1252- Codierung, sodass die Gesamtpunktzahl 2 Byte anstelle von 3: p beträgt .Rubin, 68
quelle
GolfScript
4341Bearbeiten: Ich könnte genauso gut die 0 durch die übrig gebliebene 1 aus der Initialisierung von b ersetzen, der resultierende Unterschied ist viel zu klein, um es zur Ausgabe zu bringen.
Ich habe die alte Version so belassen, wie ich es unten dokumentiert habe.
~10\?
Eingaben nehmen und 10 ^ Eingaben berechnen, das Ergebnis auf dem Stapel belassen.1:b;
Speichern Sie 1 in b.0 461,
Legen Sie 0 auf den Stapel und legen Sie das Array [0 1 ... 459 460] auf den Stapel.{ }460*
Führen Sie die Funktion 460 Mal aus.)b*:b
Nehmen Sie das letzte Element des Arrays, multiplizieren Sie es mit b, speichern Sie das Ergebnis in b und belassen Sie das Ergebnis auf dem Stapel.@+\
Setzen Sie die 0 (die bei der ersten Iteration nur eine Null ist) oben auf den Stapel, addieren Sie sie zum verbleibenden b-Wert und schalten Sie das Ergebnis wieder zurück.;
Entfernen Sie den Rest des Arrays (nur noch [0]).Die auf 0 initialisierte Zahl hat jetzt den Wert e * 460! und b halten 460!
*
Multiplizieren Sie 10 ^ Eingabe mit e * 460! (Sie sind zu diesem Zeitpunkt die einzigen 2 auf dem Stapel verbleibenden Elemente).b/
Teilen Sie das Ergebnis durch b.Der Stack enthält jetzt den Wert e * 10 ^ input, der bei der Konvertierung in einen String alle Dezimalstellen enthält, jedoch nicht den Punkt.
`);(;'2.'\
Eine Reihe von Zeichenfolgenoperationen, die in den Punkt passen.e * 460! wird berechnet als 1 + 460 + 460 * 459 + 460 * 459 * 458 usw.
quelle
v.Chr . 17 Zeichen
quelle
J, 17
Beispiel:
Verwendet in exponentiellen Verb gebaut - so ist "rechnen" auf wackeligen Gründen. Grundsätzlich:
quelle
*&0j1
ist einfachj.
AGB , 14
Erläuterung
e
- Geben Siee
den zuletzt berechneten Wert einS?
- Konvertierene
String_
`A
- Eingang AS;_,1,A+1
Zeigt die erstenA
Ziffern von ane
quelle
Mathcad, [tbd] Bytes
Verwendet einen Spigot-Algorithmus - http://comjnl.oxfordjournals.org/content/11/2/229.full.pdf+html .
Die Byteanzahl, die nicht als Mathcad-Byteanzahl-Äquivalenz angegeben ist, muss noch ermittelt werden. Unter Verwendung einer Symboläquivalenz sind es jedoch ungefähr 121 Bytes ... und es werden keine Kürzepreise gewonnen, unabhängig davon, wie die Äquivalenz bestimmt wird.
quelle
Mathematica, 7 Bytes
Meine Antwort ist ein weiterer Golf dieser Antwort.
Probieren Sie es online!
Aus irgendeinem Grund sieht die Ausgabe bei TIO lustig aus, aber ich habe sie auf meinem Computer getestet und der Code funktioniert einwandfrei.
quelle
Perl 5
-Mbignum=bexp -p
, 12 BytesProbieren Sie es online!
quelle