Stellen Sie sich ein Dreieck vor, in dem die N- te Zeile (1-indiziert) das Array der ersten N positiven ganzzahligen Potenzen von N ist . Hier sind die ersten paar Zeilen:
N | Dreieck 1 | 1 2 | 2 4 3 | 3 9 27 4 | 4 16 64 256 5 | 5 25 125 625 3125 ...
Wenn wir nun diese Kräfte in einer einzigen Sequenz verketten, erhalten wir OEIS A075363 :
1, 2, 4, 3, 9, 27, 4, 16, 64, 256, 5, 25, 125, 625, 3125, 6, 36, 216, 1296, 7776, 46656 ...
Bei einer Ganzzahl N müssen Sie den N- ten Term dieser Sequenz zurückgeben. Sie können zwischen 0- und 1-Indizierung wählen.
Testfälle
1-indiziert:
N -> Ausgabe 1 -> 1 2 -> 2 3 -> 4 5 -> 9 10 -> 256 12 -> 25 15 -> 3125
0-indiziert:
N -> Ausgabe 0 -> 1 1 -> 2 2 -> 4 4 -> 9 9 -> 256 11 -> 25 14 -> 3125
Beachten Sie, dass diese Lücken standardmäßig verboten sind. Dies ist Code-Golf , daher gewinnt die kürzeste gültige Einsendung in jeder Sprache!
Antworten:
Python 3 , 39 Bytes
1-indiziert
Probieren Sie es online!
quelle
Schale , 7 Bytes
Probieren Sie es online!
1-indiziert
Erläuterung:
quelle
Wolfram Language (Mathematica) , 32 Byte
Probieren Sie es online!
Ranges to the Power von Ranges of Ranges ...
quelle
Range@Range@3
kehrt zurück{{1}, {1, 2}, {1, 2, 3}}
?! Verdammt, Mathematicas Listenthreading ist verrückt.R , 40 Bytes
-2 Bytes portieren die Antwort von Halvard Hummel
Probieren Sie es online!
R , (ursprüngliche Antwort) 42 Bytes
Probieren Sie es online!
1-indiziert.
quelle
APL (Dyalog) ,
151310 Bytes3 Bytes gespart dank @ Adám
Probieren Sie es online!
Wie?
⍳¨∘⍳
- Erstellen Sie einen Bereich für jede Zahl im Eingabebereich⍳*
- Erhöhen Sie jede Zahl im Eingabebereich auf die entsprechenden Potenzen∊
- ebnen⊢⊃
- Wählen Sie das n-te Elementquelle
f
(alsof←
2 weitere Bytes, die hier nicht gezählt werden), und es gibt ein Testkabel, das die Ergebnisse von1
bis zurückgibt10
.Gelee , 7 Bytes
Probieren Sie es online!
-1 Danke an Herrn Xcoder .
1-indiziert.
quelle
"
, meine eigene Lösung ist 7 Byte:*R$€F⁸ị
"
, aber trotzdem. Das ist, was Sie für das Studium der Geschichte bekommen: /Haskell ,
3028 Bytes2 Bytes dank xnor gespart.
Probieren Sie es online!
0-indiziert
quelle
[n^i|n<-[1..],i<-[1..n]]
.>>=
Form verglichen ...MATL , 9 Bytes
Die Indizierung basiert auf 1. Probieren Sie es online! Oder überprüfen Sie alle Testfälle .
Erläuterung
Betrachten Sie die Eingabe
5
als Beispiel.quelle
APL (Dyalog) ,
1412 BytesProbieren Sie es online!
Verwendet 1-Indizierung
2 Bytes mit gespeichert
↑,/ → ∊
, aus Grahams Antwort entnommenBeachten Sie, dass für den Testlink ein zusätzlicher Code erforderlich ist
f←
, der jedoch nicht gemäß unseren Regeln gezählt wird.quelle
∘
mit⍨
.{⍵⌷∊*∘⍳⍨¨⍳⍵}
→⊢⌷∘∊((*∘⍳)⍨¨⍳)
→⊢⌷∘∊(⍳(*∘⍳)¨⍳)
→⊢⌷∘∊⍳*∘⍳¨⍳
⊢
ist zu einer stillschweigenden funktion was⍵
ist zu einer dfn. Das∘
zwischen⌷
und∊
wird benötigt, da∊
es monadisch aufgerufen wird, und es wird das eingetragene indexiert . Und wir wechselnf⍨⍳
zu⍳ f ⍳
, um zu vermeiden, f (*∘⍳¨
) monadisch aufzurufen (wann immer⍨
und¨
nebeneinander, können sie die Position tauschen).Pyth , 8 Bytes
Probieren Sie es hier aus.
-1 danke an Steven H ..
0-indiziert.
quelle
@s^RSdSh
ein Byte abschlagen.05AB1E , 9 Bytes
Probieren Sie es online!
Erläuterung
1-indiziert.
Alternative Lösung über eine Liste anstelle einer Schleife
quelle
Perl 6 , 29 Bytes
Probier es aus
Erweitert:
quelle
Ruby , 34 Bytes
Probieren Sie es online!
quelle
JavaScript , 30 Bytes
-1 Byte danke an Nahuel Fouilleul
Probieren Sie es online!
quelle
f=(x,n=1)=>x>n?f(x-n,n+1):n**x
Python 2 , 57 Bytes
Probieren Sie es online! (0-indiziert.)
Alternative 74 Byte lange Version mit 0-Index .
quelle
Jelly ,
1512 BytesWahrscheinlichnicht optimal.-3 danke an Erik the Outgolfer beim Golfen.
Probieren Sie es online!
quelle
J , 20 Bytes
1-indiziert
Probieren Sie es online!
quelle
APL + WIN, 23 Bytes
Erläuterung:
quelle
∊
von Ihrer Antwort genommen, um meine zu ersetzen↑,/
. Ich wusste nichts von dieser Funktion. DankeSILOS , 45 Bytes
Probieren Sie es online!
quelle
Perl 5, 30 + 1 (-p) Bytes
versuche es online
quelle
Clojure 51 Bytes
0-indiziert, z. B. Input-
9
Returns256.0
.quelle
C
7662 Bytesy; f (n) {y = (int) (-, 5 + sqrt (1 + 8 * ~ -n) / 2) +2; n + = y * (3-y) / 2-1; return (int ) pow (y-1, n);}Ich habe es auf diesen Code gestützt
Probiere es auf ideone aus
quelle
Pyt ,
3937 Bytes1-indiziert
Erläuterung:
Kurz, es berechnet jede Zeile. Wenn sich die angeforderte Nummer in dieser Zeile befindet, geben Sie sie zurück. Andernfalls fahren Sie mit der nächsten Zeile fort.
quelle