Diese Frage wurde überarbeitet, bitte lesen Sie sie noch einmal.
Ultrafactorials
Die Ultrafactorials sind eine Folge von Zahlen, die mit folgender Funktion erzeugt werden können:
a(n) = n! ^ n!
Die resultierenden Werte steigen extrem schnell an. Randnotiz: Dies ist der Eintrag A046882 im OEIS. Ebenfalls verwandt sind die Hyperfactorials, eine noch recht große, aber etwas kleinere Sequenz: A002109
Deine Aufgabe
Ihre Aufgabe ist es, diese Zahlen in Ihre Sprache umzusetzen. Ihr Programm berechnet die Summe aller Ultrafactorials von 0 bis einschließlich n
.
Eingang
Ihr Programm kann nur eine Eingabe annehmen: eine Zahl, die dem letzten a (n) Ultrafaktor entspricht, der zur Summe hinzugefügt wird. Der Eingang ist positiv oder 0.
Ausgabe
Ihre Ausgabe liegt ganz bei Ihnen, solange es irgendwo die sichtbare Summe der Zahlen gibt.
Regeln
- Sie können alle Ganzzahlen annehmen, also Integer-Eingaben, und Integer-Zählschleifen verwenden, um einige Ergebnisse zu erzielen.
Testfälle
Input: -1
Output: Any kind of error (because -1! is undefined), or no handling at all
Input: 0
Output: 1
Input: 1
Output: 2
Input: 2
Output: 6
Input: 3
Output: 46662
Herausforderung
Das ist Code-Golf , also gewinnt die Antwort mit der geringsten Länge in Bytes!
double
) unterstützt?Antworten:
05AB1E , 5 Bytes
Code:
Erläuterung:
Verwendet die CP-1252- Codierung. Probieren Sie es online!
quelle
L!DmO
funktioniert auch, wenn Sie das Bit "CP-1252-Codierung" entfernen möchten.Mathematica, 19 Bytes
Entschuldigung für den extrem übersichtlichen Code;)
quelle
Gelee, 6 Bytes
Probieren Sie es online!
quelle
‘
alsoR!*`S‘
spart es ein Byte (ich habe mich entschieden‘Ḷ!*`S
).R -
3430 Bytesvektorisieren ist schön
Bearbeiten: 4 Bytes dank @MickyT gespeichert
quelle
x=factorial(0:scan());sum(x^x)
J,
1512 BytesDank Meilen 3 Bytes gespart!
Erläuterung
Testfälle
quelle
1#.i.^~@!@,]
rasiert ein paar Bytes mehr aus.1#.
ob Summation durchgeführt wird. Wenn das noch kein Tipp ist, solltest du ihn unbedingt hinzufügen!Perl 6 ,
413837 Bytes( Probieren Sie es online. )
Erläuterung:
for 0 .. $_
: Für jede ganze Zahl von 0 bis zur Eingabe[*](1 .. $_) xx 2
: berechne die Fakultät zweimal,[**] ...
: und potenzieren die beiden identischen Fakultäten.[+] ...
: Summieren Sie dann alle Ergebnisse der Schleife.Danke an b2gills für 1 Byte.
quelle
([*] …)
kann als[*](…)
Speichern eines Bytes geschrieben werdenCheddar ,
4437 BytesVielen Ziegen für die Reduzierung der Betreiber! Ich denke, es wäre eine gute Idee gewesen, Fakultät hinzuzufügen
Probieren Sie es online aus
Ungolfed
Erläuterung
Hinweis: Ein wenig veraltet, wird behoben
quelle
MATL , 7 Bytes
Probieren Sie es online!
Erläuterung
quelle
PHP, 49 Bytes
INF
zumn>5
auf einem 64-Bit-System.für große Zahlen 70 Bytes
erfordert, dass PHP kompiliert wird
--with-gmp
quelle
Rubin,
6466 BytesEs wurden zwei Zeichen für den Bugfix "Off-by-One" hinzugefügt (wird später die Verkürzung der Inject-Aufrufe untersuchen).
quelle
a=(0..i)
statta=(1..i)
?+1
ist die beste Lösung.Pyth -
98 BytesTest Suite .
quelle
Haskell,
6756 BytesBeachten Sie, dass diese Übermittlung erfolgte, bevor die Regeln zum Verbot von Buildins entfernt wurden.
Beispielsweise:
quelle
Python 2,
7372 Bytesquelle
PARI / GP , 19 Bytes
quelle
R, 42
35BytesNachdem ich die Frage richtig gelesen habe, habe ich die Summe eingegeben.
Dazu muss die gmp- Bibliothek (Multiple Precision Arithmetic) verfügbar sein. Dadurch können große Zahlen verarbeitet werden. Ansonsten kehrt alles über 5 zurück
INF
.Dies wird als unbenannte Funktion implementiert, um zu vermeiden
as.character
, dass eine Ausgabe an STDOUT über erforderlich istcat
Beispiellauf
f (9) läuft ziemlich gut, füllt aber eine Reihe von Seiten aus. Ein paar hundert oder so und 2.017.528 Stellen. f (10) beendet die Sitzung auf meinem Computer.
quelle
factorialZ(0:x)
. Gibt es einen bestimmten Grund, diebase::factorial()
Funktion nicht zu verwenden ?gmp::factorialZ
, um mit den großen Zahlen umzugehen.JavaScript (ES7), 38 Byte
quelle
Pyke, 11 Bytes
Probieren Sie es hier aus!
Lustige Tatsache: Pyke hat keine Fakultät eingebaut, weil
SB
es nur 2 Bytes sind!quelle
Haskell, 43 Bytes
Anwendungsbeispiel:
a 3
->46662
.b
Berechnet ein einzelnes Ultrafaktorielles unda
summiert alle Ultrafaktoriellen von0
bisn
.quelle
JavaScript (ES7), 44 Byte
quelle
Python 2, 82 Bytes
quelle
range(input())
um ein paar Bytes zu entfernenWunder , 33 Bytes
Verwendung:
Erläuterung
Inklusivbereich von 0 bis Eingabe erstellen.
Ordnen Sie den Bereich mit einer Funktion zu, die 1) die Fakultät des Elements berechnet, 2) das Ergebnis speichert
f
und 3) berechnetf^f
.Summe.
quelle
TI-Basic, 13 Bytes
PS Sie können ersetzen
sum(seq(
mit ,Σ(
wenn Sie ein neueres Betriebssystem haben (keine Größenänderung).quelle
GameMaker-Sprache, 97 Byte
Hauptfunktion (52 Bytes)
Funktion f (45 Bytes)
quelle
Ruby 2, 41 Bytes
quelle
s
und als Anfangswertt
zum Reduzieren / Injizieren übergeben wird.->n{((t=s=1)..n).map{|i|t+=(s*=i)**s};t}
oder->n{t=s=1;(1..n).map{|i|t+=(s*=i)**s};t}
Dyalog APL, 10 Bytes
Wie?
⍳
Eingabebereich0,
vorangestellt mit 0!*!
sich bewerbenx! ^ x!
+/
Summequelle
*
und!
sind skalare Funktionen, verwenden Sie also Arrays:+/*⍨!0,⍳⎕
oder(+/!*!)0,⍳
wenn Sie wirklich einen Zug wollen.Mathematica, 19 Bytes
Anonyme Funktion. Nimmt eine Zahl als Eingabe und gibt eine Zahl als Ausgabe zurück.
quelle
Brachylog , 12 Bytes
Probieren Sie es online!
Erläuterung
quelle
79 Bytes mit Konsolenausgabe
64 Bytes als Rückgabe
quelle
Eigentlich
1110 BytesWie es funktioniert
quelle
Schläger 54 Bytes
Ungolfed:
Testen:
Ausgabe:
quelle