Zählen, ersetzen, wiederholen!


18

Definition

Definieren Sie das n- te Array der CURR-Sequenz wie folgt.

  1. Beginnen Sie mit dem Singleton-Array A = [n] .

  2. Ersetzen Sie für jede Ganzzahl k in A den Eintrag k durch k natürliche Zahlen und zählen Sie dabei von 1 bis k auf .

  3. Wiederholen Sie den vorherigen Schritt n - 1 weitere Male.

Wenn beispielsweise n = 3 ist , beginnen wir mit dem Array [3] .

Wir ersetzen 3 durch 1, 2, 3 und erhalten [1, 2, 3] .

Wir ersetzen jetzt 1 , 2 und 3 durch 1 ; 1, 2 und 1, 2, 3 (bzw.), was [1, 1, 2, 1, 2, 3] ergibt .

Schließlich führen wir die gleichen Ersetzungen wie im vorherigen Schritt für alle sechs Ganzzahlen im Array durch und ergeben [1, 1, 1, 2, 1, 1, 2, 1, 2, 3] . Dies ist das dritte CURR-Array.

Aufgabe

Schreiben Sie ein Programm einer Funktion, die bei einer streng positiven Ganzzahl n als Eingabe das n- te CURR-Array berechnet .

Die Ausgabe muss eine flache Liste sein (und ein von einer Funktion zurückgegebenes Array, eine Zeichenfolgendarstellung der Array-Syntax Ihrer Sprache, durch Leerzeichen getrennt usw.).

Das ist . Möge der kürzeste Code in Bytes gewinnen!

Testfälle

 1 -> [1]
 2 -> [1, 1, 2]
 3 -> [1, 1, 1, 2, 1, 1, 2, 1, 2, 3]
 4 -> [1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4]
 5 -> [1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5]
 6 -> [1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6]


Können wir die Eingabe als Singleton-Array (wie [2]) anstatt als Ganzzahl verwenden?
Mego

@Mego Lass es uns bei ganzen Zahlen belassen.
Dennis

Ich denke, dafür sollte es eine OEIS-Sequenz geben.
DanTheMan

@DanTheMan Es ist nicht wirklich eine Ganzzahl- Sequenz in der aktuellen Form, aber ich denke, sie könnte durch Verketten der Ergebnisse für alle positiven Ganzzahlen in eine umgewandelt werden.
Dennis

Antworten:



16

Python, 50 Bytes

lambda i:eval("[i "+"for i in range(1,i+1)"*i+"]")

Umfang Missbrauch! Beispielsweise wird für i=3die auszuwertende Zeichenfolge auf erweitert.

[i for i in range(1,i+1)for i in range(1,i+1)for i in range(1,i+1)]

Trotz der Verwendung der Funktionseingabevariable ifür alles unterscheidet Python irgendwie jeden Iterationsindex als zu einem separaten Bereich gehörend, als ob der Ausdruck wäre

[l for j in range(1,i+1)for k in range(1,j+1)for l in range(1,k+1)]

mit ider Eingabe in die Funktion.


Dieser Trick funktioniert auch in Firefox 30+ und hat mir 3 Bytes gespart, danke!
Neil

@DigitalTrauma Sowohl Python als auch JavaScript haben eval, offensichtlich muss der Code selbst portiert werden, aber ich dachte, Sie könnten das trotzdem annehmen.
Neil

@Neil Oh, ich verstehe - ich völlig falsch verstanden :)
Digital Trauma

12

05AB1E, 6 3 Bytes

DFL

Erklärt

D     # duplicate input
 F    # input times do
  L   # range(1,N)

Probieren Sie es online aus

3 Bytes gespart dank @Adnan


DFList 3 Bytes kürzer :)
Adnan

1
@Adnan: Wusste nicht, dass L so auf Listen arbeitet. Ein bisschen überraschend, dass es sich automatisch abflacht.
Emigna

3
Es ist eigentlich ein Fehler, den ich nie behoben habe: p.
Adnan

6

Retina , 33 Bytes

$
$.`$*0
+%(M!&`1.*(?=0)|^.+
O`.+

Ein- und Ausgabe in unary.

Probieren Sie es online!

Obwohl ich das geschlossene Formular für die damit verbundene Herausforderung nicht verwendet habe, war es überraschend schwierig, diese Antwort anzupassen.


+%(M!&ist das längste Tag, das ich jemals sehen würde.
Undichte Nonne

6

Python 2, 82 Bytes

lambda n:[1+bin(i)[::-1].find('1')for i in range(1<<2*n-1)if bin(i).count('1')==n]

Dies ist nicht die kürzeste Lösung, zeigt aber eine interessante Methode:

  • Schreiben Sie die ersten 2^(2*n-1)Zahlen binär auf
  • Halten Sie die mit genau ndiejenigen
  • Zählen Sie für jede Zahl die Anzahl der nachgestellten Nullen und addieren Sie 1.

4

Eigentlich 9 Bytes

;#@`♂RΣ`n

Probieren Sie es online!

Erläuterung:

;#@`♂RΣ`n
;#@        dupe n, make a singleton list, swap with n
   `♂RΣ`n  call the following function n times:
    ♂R       range(1, k+1) for k in list
      Σ      concatenate the ranges

Vielen Dank an Leaky Nun für ein Byte und Inspiration für weitere 2 Byte.


;#@"♂R♂i"*ƒspeichert ein Byte
Leaky Nun

@LeakyNun Guter Fang - ;#@`♂R♂i`nspart noch einen!
Mego

Ich wollte es mit Summation versuchen, lol.
Undichte Nonne

Ich denke, 9 wird hier die optimale Lösung sein
Mego

Ihr Link ist immer noch veraltet.
Undichte Nonne

4

128 Bytes

List<int>j(int n){var l=new List<int>(){n};for(;n>0;n--)l=l.Select(p=>Enumerable.Range(1,p)).SelectMany(m=>m).ToList();return l;

Mit using static System.Linq.Enumerablekönnen Sie dies tun:int[]J(int n){var l=new[]{n};while (n-- > 0){l = l.Select(p => Range(1, p)).SelectMany(m => m).ToArray();}return l;}
die maus

4

APL, 11 Bytes

{∊⍳¨∘∊⍣⍵+⍵}

Prüfung:

      {∊⍳¨∘∊⍣⍵+⍵} 3
1 1 1 2 1 1 2 1 2 3

Erläuterung:

  • +⍵: beginnend mit ,
  • ⍣⍵: mache die folgenden Zeiten:
    • ⍳¨∘∊: Reduzieren Sie die Eingabe und erstellen Sie dann eine Liste [1..N] für jedes N in der Eingabe
  • : das Ergebnis davon abflachen

2
Einfacher:{(∊⍳¨)⍣⍵⊢⍵}
Adám

@Adam: Ah ja, Züge funktionieren anders als J. Ich hatte angefangen {(∊∘(⍳¨))⍣⍵+⍵}und mir dann überlegt, wie ich diese Zahnspangen loswerden kann.
Marinus

2

CJam, 14 Bytes

{_a\{:,:~:)}*}

Teste es hier.

Erläuterung

_a   e# Duplicate N and wrap it in an array.
\    e# Swap with other copy of N.
{    e# Do this N times...
  :, e#   Turn each x into [0 1 ... x-1].
  :~ e#   Unwrap each of those arrays.
  :) e#   Increment each element.
}*

2

Mathematica, 27 26 Bytes

1 Byte gespeichert mit etwas Inspiration von Essaris Antwort.

Flatten@Nest[Range,{#},#]&

Ziemlich einfach: für die Eingabe xbeginnen wir mit {x}und dann die Anwendung , Rangeum es xmal ( Rangeist Listablewas bedeutet , dass es gilt automatisch für die ganzen Zahlen innerhalb beliebig verschachtelt Listen). Am Ende Flattendas Ergebnis.


2

Clojure, 59 Bytes

(fn[n](nth(iterate #(mapcat(fn[x](range 1(inc x)))%)[n])n))

Erläuterung:

Wirklich direkter Weg, um das Problem zu lösen. Von innen heraus arbeiten:

(1) (fn[x](range 1(inc x))) ;; return a list from 1 to x
(2) #(mapcat (1) %)         ;; map (1) over each item in list and flatten result
(3) (iterate (2) [n])       ;; call (2) repeatedly e.g. (f (f (f [n])))
(4) (nth (3) n))            ;; return the nth value of the iteration

2

Python 3, 75 74 Bytes

def f(k):N=[k];exec('A=N;N=[]\nfor i in A:N+=range(1,i+1)\n'*k+'print(N)')

Dies ist nur eine einfache Übersetzung der Problembeschreibung in Code.

Bearbeiten: Ein Byte dank @Dennis gespeichert.


Du printkannst nach draußen gehen exec.
xnor

Ja, das war es, was ich zuerst hatte, aber es wird einfach [k]aus irgendeinem Grund gedruckt . Ich gab den Versuch auf, herauszufinden, ob es sich um ein Scope-Problem oder etwas anderes handelte.
Andrew Epstein

Ja, es sieht nach einem Umfangsproblem aus . In Python 2
funktioniert es einwandfrei

2

R 60 49 Bytes

Ziemlich unkomplizierte Verwendung von unlistund sapply.

y=x=scan();for(i in 1:x)y=unlist(sapply(y,seq));y

Vielen Dank an @MickyT für das Speichern von 11 Bytes


@ MickyT thx für den Tipp, ich kann verwenden seq, um die
Byteanzahl

Entschuldigung, ich habe die Frage falsch verstanden
MickyT

2

php 121

Nicht wirklich viele Tricks stecken dahinter. Das Reduzieren eines Arrays in PHP ist nicht kurz, daher ist es notwendig, es zunächst flach zu bauen

<?php for($a=[$b=$argv[1]];$b--;)$a=array_reduce($a,function($r,$v){return array_merge($r,range(1,$v));},[]);print_r($a);

Es ist eine gute Idee, es flach zu halten. Callback-Funktionen kommen aber auch nicht zu kurz. Schlage dich um 15 Bytes. Sie können 4 Bytes mit dem kurzen Tag <?oder 6 Bytes mit -rund ohne Tag speichern .
Titus

2

Haskell, 33 Bytes

f n=iterate(>>= \a->[1..a])[n]!!n

Danke an nimi für das Speichern eines Bytes.

Eine pointfree Version ist länger (35 Bytes):

(!!)=<<iterate(>>= \a->[1..a]).pure

iterate(>>= \a->[1..a])für ein Byte weniger.
nimi

2

JavaScript (Firefox 30-57), 63 bis 60 Byte

f=n=>eval(`[${`for(n of Array(n+1).keys())`.repeat(n--)}n+1]`)

Port von @ xnors Python-Antwort.


Ich habe das mit Firefox 42 ( SyntaxError: missing : in conditional expression) und Babel ( Unexpected token (1:21)) versucht . Was mache ich falsch?
Dennis

@ Tennis Sorry, aber ich habe keine Ahnung; Ich habe Firefox 42 tatsächlich aus irgendeinem Grund auf einem meiner Computer und ich habe es zweimal überprüft und es lief dort einwandfrei. (Ich habe auch Firefox 37 und 47 überprüft, nur um sicherzugehen.)
Neil

Huh, die Seite wurde nicht aktualisiert und ich habe deine alte Version getestet. Das neue funktioniert einwandfrei.
Dennis

@Dennis Ah, es sieht )irgendwie so aus, als hätte sich ein Streuner in diese Version eingeschlichen.
Neil

1

J, 18 Bytes

([:;<@(1+i.)"0)^:]

Einfacher Ansatz basierend auf dem in der Herausforderung beschriebenen Prozess.

Verwendung

   f =: ([:;<@(1+i.)"0)^:]
   f 1
1
   f 2
1 1 2
   f 3
1 1 1 2 1 1 2 1 2 3
   f 4
1 1 1 1 2 1 1 1 2 1 1 2 1 2 3 1 1 1 2 1 1 2 1 2 3 1 1 2 1 2 3 1 2 3 4

Erläuterung

([:;<@(1+i.)"0)^:]  Input: n
                 ]  Identity function, gets the value n
(     ...     )^:   Repeat the following n times with an initial value [n]
      (    )"0        Means rank 0, or to operate on each atom in the list
         i.           Create a range from 0 to that value, exclusive
       1+             Add 1 to each to make the range from 1 to that value
    <@                Box the value
 [:;                  Combine the boxes and unbox them to make a list and return
                    Return the final result after n iterations

1

Pyth, 8 Bytes

usSMGQ]Q

Probieren Sie es online!

usSMGQ]Q   input as Q

u    Q     repeat for Q times,
      ]Q   starting as [Q]:

  SMG          convert each number in the array to its range
 s             flatten

           then implicitly prints the result.

1

Gelee, 7 Bytes

Schnell, bevor Dennis antwortet (jk)

WR€F$³¡

Probieren Sie es online!

WR€F$³¡  Main monadic chain. Argument: z

W        Yield [z].
     ³¡  Repeat the following z times:
 R€          Convert each number in the array to the corresponding range.
   F         Flatten the array.

1

F #, 63 Bytes

fun n->Seq.fold(fun A _->List.collect(fun k->[1..k])A)[n]{1..n}

Gibt eine anonyme Funktion zurück, die n als Eingabe verwendet.

Ersetzt jeden Eintrag k in A durch [1..k], wiederholt den Vorgang n-mal, beginnend mit A = [n].


1

Schnelle 3, 58 Bytes

Soll direkt auf einem Spielplatz laufen, wobei n auf den Eingang gesetzt ist:

var x=[n];for i in 0..<n{x=x.reduce([]){$0+[Int](1...$1)}}

Ungolfed, wobei die meisten Kurznotationen rückgängig gemacht wurden:

let n = 3 //input

var x: Array<Int> = [n]
for i in 0..<n {
    x = x.reduce(Array<Int>[], combine: { accumulator, element in
        accumulator + Array<Int>(1...element)
    })
}

1

Java, 159 Bytes

Verfahren

int[] q(int y){int z[]=new int[]{y};for(int i=0;i<y;i++){int d=0,a=0;for(int c:z)d+=c;int[]r=new int[d];for(int c:z)for(int j=0;j<c;)r[a++]=++j;z=r;}return z;}

Verwendung

public static void main(String[] args){String out = "["; int [] b = q(6);for(int c:b)out+=c+", ";System.out.println(out+"]");}

public static int[] q(int y){int z[]=new int[]{y};for(int i=0;i<y;i++){int d=0,a=0;for(int c:z)d+=c;int[]r=new int[d];for(int c:z)for(int j=0;j<c;)r[a++]=++j;z=r;}return z;}

Beispielausgabe:

[1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, ]

1

Python 2, 69 68 66 Bytes

def f(n):a=[n];exec'a=sum([range(1,i+1)for i in a],[]);'*n;print a

Bearbeiten: 1 Byte dank @xnor gespeichert. 2 Bytes gespart dank @ Dennis ♦.


Sie können die Parens entfernen exec. In Python 2 ist es ein Schlüsselwort, keine Funktion. Ich zähle übrigens 68 Bytes.
Dennis

@ Tennis Ah, das heißt, ich habe falsch gezählt und es war ursprünglich 69 Bytes ...
Neil

1

Bash + GNU-Dienstprogramme, 49

  • Dank @Dennis 1 Byte gespart.

Weitergeleitete rekursive Funktionen FTW!

f()((($1))&&xargs -l seq|f $[$1-1]||dd)
f $1<<<$1

nwird auf der Kommandozeile übergeben. Die Ausgabe ist durch Zeilenumbrüche getrennt.

Die Verwendung von ddbewirkt, dass Statistiken an STDERR gesendet werden. Ich denke, das ist in Ordnung, aber wenn nicht, ddkann gegen cateinen Aufpreis von 1 extra Byte ausgetauscht werden .


1
Eine externe Ausgabe an STDERR ist standardmäßig zulässig. Sie können ersetzen {...;}mit (...)einem Byte zu speichern.
Dennis

@ Tennis ja, natürlich! Anscheinend hast du diesen Tipp von mir bekommen :)
Digitales Trauma

0

Perl 5, 53 Bytes

Ein Unterprogramm:

{($i)=@_;for(1..$i){my@c;push@c,1..$_ for@_;@_=@c}@_}

Sehen Sie es in Aktion als

perl -e'print "$_ " for sub{($i)=@_;for(1..$i){my@c;push@c,1..$_ for@_;@_=@c}@_}->(3)'


0

PHP, 100 98 Bytes

Laufen Sie mit php -r '<code>' <n> .

for($a=[$n=$argv[1]];$n--;$a=$b)for($b=[],$k=0;$c=$a[$k++];)for($i=0;$i++<$c;)$b[]=$i;print_r($a);

Erstellen Sie in jeder Iteration eine temporäre Kopierschleife von 1 .. (erster entfernter Wert) bis $aleer.


Diese beiden sind noch und werden wahrscheinlich bei 100 Bytes bleiben:

for($a=[$n=$argv[1]];$n--;)for($i=count($a);$i--;)array_splice($a,$i,1,range(1,$a[$i]));print_r($a);

In jeder Iterationsschleife rückwärts durch das Array, wobei jede Zahl durch einen Bereich ersetzt wird.

for($a=[$n=$argv[1]];$n--;)for($i=$c=0;$c=$a[$i+=$c];)array_splice($a,$i,1,range(1,$c));print_r($a);

In jeder Iterationsschleife durch das Array wird der Index um die vorherige Nummer erhöht und jedes indizierte Element durch einen Bereich ersetzt

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.