X Schritte vorwärts, 1 Schritt zurück

21

Hier die ersten 100 Zahlen einer einfachen Sequenz:

0,1,0,2,1,4,3,7,6,11,10,16,15,22,21,29,28,37,36,46,45,56,55,67,66,79,78,92,91,106,105,121,120,137,136,154,153,172,171,191,190,211,210,232,231,254,253,277,276,301,300,326,325,352,351,379,378,407,406,436,435,466,465,497,496,529,528,562,561,596,595,631,630,667,666,704,703,742,741,781,780,821,820,862,861,904,903,947,946,991,990,1036,1035,1082,1081,1129,1128,1177,1176,1226

Wie funktioniert diese Sequenz?

n: 0 1     2           3     4     5     6     7     8      9       10      11      12

   0,      1-1=0,      2-1=1,      4-1=3,      7-1=6,       11-1=10,        16-1=15,      
     0+1=1,      0+2=2,      1+3=4,      3+4=7,      6+5=11,        10+6=16,        15+7=22
  • a(0) = 0
  • Für jede ungerade n(0-indiziert) ist es a(n-1) + X(wo X=1und erhöht sich bei jedem Zugriff um 1).
  • Für jede gerade n(0-indizierte) ist esa(n-1) - 1

Herausforderung:

Einer von:

  • Geben Sie bei einer Ganzzahl ndie n'te Zahl in der Sequenz aus.
  • Geben Sie bei einer Ganzzahl ndie ersten nZahlen der Sequenz aus.
  • Geben Sie die Sequenz auf unbestimmte Zeit aus, ohne eine Eingabe ( oder eine leere, nicht verwendete Eingabe ) zu übernehmen.

Herausforderungsregeln:

  • Der Eingang nkann sowohl 0- als auch 1-indiziert sein.
  • Wenn Sie einen Teil der Sequenz ausgeben, können Sie eine Liste / ein Array verwenden und mit einem beliebigen Trennzeichen (Leerzeichen, Komma, Zeilenumbruch usw.) auf STDOUT ausgeben. Ihr Anruf.
  • Bitte geben Sie an, welche der drei Optionen Sie in Ihrer Antwort verwendet haben.
  • Sie müssen mindestens die ersten 10.000 Nummern unterstützen (die 10.000ste Nummer ist 12,497,501).

Allgemeine Regeln:

  • Das ist , also gewinnt die kürzeste Antwort in Bytes.
    Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden.
  • Für Ihre Antwort gelten Standardregeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp verwenden. Ihr Anruf.
  • Standardlücken sind verboten.
  • Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu.
  • Fügen Sie nach Möglichkeit auch eine Erklärung hinzu.

Testfälle:

Pastebin mit den ersten 10.001 Nummern in der Sequenz. Fühlen Sie sich frei zu wählen, was Sie möchten.

Einige höhere Zahlen:

n (0-indexed)    Output:

68,690           589,772,340
100,000          1,249,975,000
162,207          3,288,888,857
453,271          25,681,824,931
888,888          98,765,012,346
1,000,000        124,999,750,000
Kevin Cruijssen
quelle

Antworten:

8

Excel, 31 Bytes

Die Antwort ist 0indiziert. Gibt ndie Nummer aus.

=(A1^2+IF(ISODD(A1),7,-2*A1))/8

Die beschriebene Sequenz besteht letztendlich nur aus zwei verschachtelten Sequenzen:

ODD:   (x^2+x+2)/2
EVEN:  (x^2-x)/2

Das Verschachteln dieser in eine 0indizierte Sequenz ergibt:

a = (x^2 - 2x)/8 if even
a = (x^2 + 7 )/8 if odd

Welches gibt:

=IF(ISODD(A1),(A1^2+7)/8,(A1^2-2*A1)/8)

was wir bis auf die 31Bytes Golf spielen .


1Indiziert ergeben sich nach dem gleichen Ansatz 37Bytes:

=(A1^2-IF(ISODD(A1),4*A1-3,2*A1-8))/8
Wernisch
quelle
6

Gelee , 6 Bytes

Rj-ḣ⁸S

Probieren Sie es online!

0-indiziert. Gibt die nNummer zurück.

Erläuterung:

Rj-ḣ⁸S Arguments: z
R      [1..x]: z (implicit)
 j-    Join x with y: ^, -1
   ḣ⁸  Take first y of x: ^, z
     S Sum: ^
Erik der Outgolfer
quelle
4

JavaScript (Node.js) , 23 Byte

x=>(7+(x-2|1)**2)/8-x%2

1-indiziert. Probieren Sie es online!

f(x) = f(x+1) + 1 if x is even
     = SUM{1..(x-3)/2} if x is odd

SUM{1..(x-3)/2}
= (1+(x-3)/2)*((x-3)/2)/2
= (x-1)*(x-3)/8
= ((x-2)^2-1)/8
tsh
quelle
4

Haskell , 40 38 37 Bytes

scanl(flip($))0$[1..]>>=(:[pred]).(+)

Gibt eine unendliche Liste zurück, versuche es online!

Erläuterung

scanldrei Argumente verwendet f, initund xs( [ x 0 , x 1 ... ] ) und baut eine neue Liste:

[ a 0 = init , a 1 = f (a 0 , x 0 ) , a 2 = f (a 1 , x 1 ) ... ]

Wir setzen init = 0und verwenden den gespiegelten ($)Anwendungsoperator (daher wendet er ein i auf die Funktion x i an ), jetzt brauchen wir nur noch eine Liste von Funktionen - die Liste [1..]>>=(:[pred]).(+)ist eine unendliche Liste mit den richtigen Funktionen:

[(+1),(-1),(+2),(-1),(+3),(-1),(+4),...

Interessante Alternative, 37 Bytes

flipmit der Art (a -> b -> c) -> b -> a -> cwir auch nutzen könnten , id :: d -> danstatt ($)wegen Haskells Typinferenz die Art dwürde mit vereinigt werden a -> b, gibt uns das gleiche.

Probieren Sie es online!

Bearbeiten

-2 Bytes mit (>>=)anstelle von do-notation.

-1 Byte mit scanlanstelle von zipWith.

ბიმო
quelle
3

05AB1E , 10 Bytes

ÎF<NÈi¼¾>+

Probieren Sie es online!

Erläuterung

Î             # initialize stack with: 0, input
 F            # for N in [0 ... input-1] do:
  <           # decrement the current number
   NÈi        # if N is even
      ¼       # increment a counter
       ¾>     # push counter+1
         +    # add to current number

Ein weiterer 10-Byte: ÎFNÈN;Ì*<O

Emigna
quelle
ÎGDN+D<generiert die Sequenz, aber das n-te Element zu greifen scheint ... in 3 Bytes schwierig zu sein.
Magic Octopus Urn
3

Oktave , 32 Bytes

@(x)fix((x-~(m=mod(x,2)))^2/8)+m

Probieren Sie es online!

Gibt die n-te Zahl mit dem Index 0 aus. Verwendet dieselbe Formel wie mehrere andere Antworten.

Stewie Griffin
quelle
3

APL (Dyalog Unicode) , 16 12 Bytes SBCS

Anonyme implizite Präfixfunktion. 0-indiziert.

+/⊢↑∘∊¯1,¨⍨⍳

Probieren Sie es online!

+/ die Summe von

⊢↑ die ersten nelemente

∘∊ der ϵ nlisted (abgeflacht)

¯1,¨⍨ Negativ-eins-an-jeden angehängt

 erste n Indexe (0 bis n–1

Adam
quelle
Ah, das war meine Lösung ... schätze es war ähnlich genug.
Erik der Outgolfer
3

Gelee , 6 Bytes

HḶS‘_Ḃ

Ein monadischer Link, der akzeptiert (1-indiziert) nund zurückgibta(n) .

Probieren Sie es online! Oder sehen Sie die Testsuite an

Wie?

HḶS‘_Ḃ - link: n
H      - halve         -> n/2.0
 Ḷ     - lowered range -> [0,1,2,...,floor(n/2.0)-1]
  S    - sum           -> TriangleNumber(floor(n/2.0)-1)
   ‘   - increment     -> TriangleNumber(floor(n/2.0)-1)+1
     Ḃ - bit = 1 if n is odd, 0 if it's even
    _  - subtract      -> TriangleNumber(floor(n/2.0)-1)+isEven(n)
Jonathan Allan
quelle
Hm, interessanter Ansatz genau dort.
Erik der Outgolfer
3

PHP , 73 64 55 51 47 Bytes

Erste Methode

Erste Code Golf Antwort!
Ich bin mir sicher, dass es PHP-Tricks gibt, die es kürzer machen und die Mathematik kann wahrscheinlich verbessert werden.

Nimmt n als erstes Argument und gibt die n-te Zahl in der Sequenz aus.

$y=$argv[1]/2;for(;$i<$y+1;)$x+=$i++;echo$x-($y|0);

Minus 9 Bytes durch Entfernen von "$ x = 0;" und "$ i = 0".

Minus 9 Bytes dank @Kevin Cruijssen, der die for-Schleife und den Verlust des End-Tags verbessert.

Minus 1 Byte mit bitweise oder "|" anstatt "(int)"

Minus 3 Bytes dank @Dennis, da Sie die Tags entfernen können, indem Sie sie über die Befehlszeile mit "php -r 'code here'" ausführen.

Probieren Sie es online!

Zweite Methode

Hat meine vorherige Antwort mit einer ganz neuen Methode abgeglichen!

for(;$i<$argv[1];$i++)$x+=($y^=1)?$i/2+1:-1;echo$x;

Verwenden von XOR und dem Tenary-Operator, um zwischen den Summen in der Schleife zu wechseln.

Bearbeiten: Dies funktioniert nicht für n = 0 und ich habe keine Ahnung warum. $ i ist nicht zugewiesen, daher sollte es 0 sein, daher sollte die Schleife ($i<$argv[1])fehlschlagen (0<0==false), daher sollte ein nicht zugewiesenes $ x als 0 und nicht als 1 ausgegeben werden.

Probieren Sie es online!

Dritte Methode

Die Konvertierung der erstellten Excel-Formel @Wernisch in PHP ergibt eine 47-Byte-Lösung

$z=$argv[1];echo(pow($z,2)+(($z&1)?7:-2*$z))/8;

Probieren Sie es online!

Sam Dean
quelle
1
Hallo, willkommen bei PPCG! Wenn Sie es noch nicht getan haben, könnten Tipps zum Golfen in PHP und Tipps zum Golfen in <allen Sprachen> interessant sein. Einige Dinge zum Golfspielen: Sie können das Schleppen entfernen ?>. Entfernen $x=0und $i=0ist in der Tat erlaubt (wenn nicht, $x=$i=0wäre es auch kürzer gewesen). Auch die Schleife kann auf gekürzt werden for(;$i<$y+1;)$x+=$i++;. Welches ist -15 Bytes insgesamt. Genieße deinen Aufenthalt! :)
Kevin Cruijssen
@ KevinCruijssen vielen Dank!
Sam Dean
Bitte. Übrigens ist Ihr TIO derzeit immer noch 60 Bytes anstatt 58. Und nicht sicher, warum Sie 57 angegeben haben. Versuchen Sie es online.
Kevin Cruijssen
@ KevinCruijssen Ich habe immer wieder das falsche TIO gepostet! TIO sagt jetzt 58, aber ich habe 55 gepostet, da Sie "php" aus dem Eröffnungs-Tag entfernen können, nur nicht in TIO
Sam Dean
@Wernisch danke für deine Formel!
Sam Dean
3

R , 35 Bytes

diffinv(rbind(n<-1:scan(),-1)[n-1])

Probieren Sie es online!

Ich fand das eine interessante Alternative zu @ JayCes Antwort da es sich nicht sehr gut für Sprachen keine eingebaute Unterstützung für Matrizen haben, und zufällig genauso gut für Golfer geeignet ist.

1-indiziert, gibt die ersten nElemente der Sequenz zurück.

Wie es funktioniert:

rbind(n<-1:scan(),-1) konstruiert die folgende Matrix:

     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]   -1   -1   -1   -1

Da R Matrizen in der Hauptreihenfolge der Spalten enthält vector, würden wir einen Vektor erhalten , wenn wir dies in a umwandeln würden

1 -1 2 -1 3 -1 4 -1

Wobei, wenn wir eine kumulative Summe von nehmen, wir bekommen würden

1 0 2 1 4 3 7 6

Das ist die Sequenz, nur ohne die Führung 0. diffinvGlücklicherweise wird die führende Null hinzugefügt, sodass wir die ersten n-1Werte aus der Matrix und diffinvdiesen entnehmen und die ersten nWerte der Sequenz erhalten.

Giuseppe
quelle
2
Ich bin ein großer Fan Ihrer "diffinv" Antworten.
JayCe
@ JayCediffinv
Giuseppe
3

R , 35 34 Bytes

(u=(n=scan())-n%%2-1)-n+(15+u^2)/8

Probieren Sie es online!

Erste Ausgabeoption. Gleiche Formel wie viele andere Antworten. (Ich möchte auf die erste Antwort verweisen, die die Formel enthält. Ich kann nicht herausfinden, um welche es sich handelt.)

Zweite und dritte Ausgabeoptionen unten:

R , 43 Bytes

function(m,n=1:m,u=n%%2+1)((n-u)^2-1)/8+2-u

Probieren Sie es online!

R , 51 Bytes

while(T){cat(((T-(u=T%%2+1))^2-1)/8+2-u," ");T=T+1}

Probieren Sie es online!

JayCe
quelle
3

Matlab / Octave, 31 26 Bytes

5 Bytes gespart dank Luis Mendo!

@(n)sum(1:n/2+.5)-fix(n/2)
Leander Moesinger
quelle
1
Sie können wahrscheinlich fixanstelle von floorund n/2+.5anstelle von verwendenceil(n/2)
Luis Mendo
@ LuisMendo Ty! Wusste nichts von fix()und erwartete nicht 1:n/2+.5zu arbeiten - so viele Dinge, die schief gehen könnten, aber sie tun es tatsächlich nicht :)
Leander Moesinger
3

QBasic 1.1 , 49 Bytes

INPUT N
R=1
FOR I=1TO N\2-1
R=R+I
NEXT
?R-N MOD 2

1-indiziert.

Erik der Outgolfer
quelle
3

QBasic 1.1 , 30 Bytes

INPUT N
?(N-1OR 1)^2\8+N MOD 2

Verwendet den TFeld-Algorithmus. 0-indiziert.

Erik der Outgolfer
quelle
3

QBasic, 31 Bytes

Die Just-Implement-the-Spec-Lösung ist etwas länger als Eriks Lösung .

DO
?n
i=i+1
n=n+i
?n
n=n-1
LOOP

Dies wird auf unbestimmte Zeit ausgegeben. Um es auszuführen, empfehle ich, die letzte Zeile in so etwas wie zu ändern LOOP WHILE INPUT$(1) <> "q", die nach jedem zweiten Eingeben und Verlassen der Sequenz auf einen Tastendruck wartet, wenn die gedrückte Taste gedrückt wird q.

DLosc
quelle
2

C # (.NET Core) , 56 Byte

n=>{int a=0,i=0;for(;++i<n;)a+=i%2<1?-1:i/2+1;return a;}

-2 Bytes dank Kevin Crujssen

Probieren Sie es online!

1 indiziert. Kehrt zurücka(n)

Ungolf'd:

int f(int n)
{
    // a needs to be outside the for loop's scope,
    // and it's golfier to also define i here
    int a = 0, i = 1;
    // basic for loop, no initializer because we already defined i
    for (; ++i < n;)
    {
        if (i%2 < 1) {
            // if i is even, subtract 1
            a -= 1;
        }
        else
        {
            // if i is odd, add (i / 2) + 1
            // this lets us handle X without defining another int
            a += i / 2 + 1;
        }
    }
    // a is the number at index n
    return a;
}
Skidsdev
quelle
1
i=1;for(;i<n;i++)kann sein i=0;for(;++i<n;)und i%2==0kann sein i%2<1.
Kevin Cruijssen
@ KevinCruijssen so kann ich, danke! Ich hätte den zweiten sehen sollen, aber ich habe nicht gedacht, dass der erste funktionieren würde, da ich dachte, dass für Schleifen nur die Bedingung nach der ersten Schleife geprüft wird. TIL
Skidsdev
Nein, es prüft schon vor der ersten Iteration. A do-whileprüft nach Abschluss der ersten Iteration. :)
Kevin Cruijssen
In sehr seltenen Fällen kann man sogar einen ifmit einem for-loop zusammenführen. Zum Beispiel: if(t>0)for(i=0;i<l;i++)bis for(i=0;t>0&i<l;i++). Ich habe dies jedoch fast nie in meinen Antworten verwenden können.
Kevin Cruijssen
das ist ziemlich genial, das muss ich mir auf jeden Fall merken, wenn ich das nächste Mal C # -Golf
spiele
2

Schale , 11 9 8 Bytes

ΘṁṠe→Θ∫N

Dank H.PWiz wurde ein Byte gespeichert.
Ausgaben als unendliche Liste.
Probieren Sie es online!

Erläuterung

ΘṁṠe→Θ∫N
      ∫N   Cumulative sum of natural numbers (triangular numbers).
     Θ     Prepend 0.
 ṁṠe→      Concatenate [n + 1, n] for each.
Θ          Prepend 0.

quelle
2

Dodos , 69 Bytes

	. w
w
	. h
	+ r . ' dab h '
h
	h ' '
	. dab
r
	
	r dip
.
	dot
'
	dip

Probieren Sie es online!


Irgendwie ist das die längste Antwort.

Erläuterung.

┌────┬─────────────────────────────────────────────────┐
│Name│Function                                         │
├────┼─────────────────────────────────────────────────┤
│.   │Alias for "dot", computes the sum.               │
├────┼─────────────────────────────────────────────────┤
│'   │Alias for "dip".                                 │
├────┼─────────────────────────────────────────────────┤
│r   │Range from 0 to n, reversed.                     │
├────┼─────────────────────────────────────────────────┤
│h   │Halve - return (n mod 2) followed by (n/2) zeros.│
└────┴─────────────────────────────────────────────────┘
user202729
quelle
1

Kohle , 15 Bytes

I∨ΣEN⎇﹪ι²±¹⊕⊘ι⁰

Probieren Sie es online! 0-indiziert. Link ist eine ausführliche Version des Codes. Die Formel wäre wahrscheinlich kürzer, aber was macht das für einen Spaß? Erläuterung:

    N           Input as a number
   E            Map over implicit range
     ⎇          Ternary
      ﹪ι²       Current value modulo 2
         ±¹     If true (odd) then -1
           ⊕⊘ι  Otherwise calculate X as i/2+1
  Σ             Take the sum
 ∨            ⁰ If the sum is empty then use zero
I               Cast to string and implicitly print
Neil
quelle
1

JavaScript, 49 48 45 Bytes

x=>eval('for(i=0,r=1;++i<x+2;)r+=i%2?-1:i/2')

Probieren Sie es online!

Nicht so hübsch wie @tsh Antwort, aber meine funktioniert für größere Zahlen.

Und nun danke @tsh für die evalLösung!

Der zufällige Typ
quelle
<=x+1kann sein<x+2
Kevin Cruijssen
x=>eval('for(i=0,r=1;++i<x+2;)r+=i%2?-1:i/2')sollte kürzer sein.
Dienstag,
Gibt evalden zuletzt geänderten Wert zurück? Ich verstehe immer noch nicht ganz, was es kann.
Der zufällige Kerl
Es gibt den Wert von statement zurück (which möglicherweise in der doAnweisung in einer späteren Version behandelt wird).
Dienstag,
1

Befunge 93, 26 Bytes

<v0p030
 >:.130g+:30p+:.1-

Läuft auf unbestimmte Zeit.
Probieren Sie es online aus , obwohl die Ausgabe ein wenig wackelig wird und nach x = 256 zurückgeht. Vermutlich kann TIO keine Zeichen über U + 256 verarbeiten. Funktioniert einwandfrei unter https://www.bedroomlan.org/tools/befunge-playground (leider nur in Chrome. Mit Firefox werden Endlines aus irgendeinem Grund zur Laufzeit entfernt ...)

Karhell
quelle
1

Pyth , 8 Bytes

s<s,R_1S

Gibt die nNummer in der Sequenz mit dem Index 0 zurück. Probieren Sie es online aus

Erklärung mit Beispiel für n=5:

s<s,R_1SQQ   Final 2 Q's are implicit, Q=eval(input())

       SQ    1-indexed range        [1,2,3,4,5]
   ,R_1      Map each to [n,-1]     [[1,-1],[2,-1],[3,-1],[4,-1],[5,-1]]
  s          Sum (Flatten)          [1,-1,2,-1,3,-1,4,-1,5,-1]
 <       Q   Take 1st Q             [1,-1,2,-1,3]
s            Sum, implicit output   4
Sok
quelle
1

Perl 6 ,  38  26 Bytes

{(0,{$_+(($+^=1)??++$ !!-1)}...*)[$_]}

Versuch es

{(+^-$_+|1)**2 div 8+$_%2}

Basierend auf Reverse Engineering der Python-Antwort von TFeld .
Versuch es

Erweitert

38 Byte (Sequenzgenerator):

{  # bare block lambda with implicit parameter $_

  (
    # generate a new sequence everytime this function is called

    0,    # seed the sequence

    {     # bare block that is used to generate the rest of the values

      $_  # parameter to this inner block (previous value)

      +

      (
          # a statement that switches between (0,1) each time it is run
          ( $ +^= 1 )

        ??     # when it is 1 (truish)
          # a statement that increments each time it is run
          ++$ # &prefix:« ++ »( state $foo )

        !!     # or else subtract 1
          -1
      )
    }

    ...  # keep generating until:

    *    # never stop

  )[ $_ ] # index into the sequence
}

Beachten Sie, dass dies den Vorteil hat, den Sie weitergeben können * , um die gesamte Sequenz abzurufen, oder einen Bereich übergeben können, um mehrere Werte effizienter zu generieren.

26 Byte (direkte Berechnung):

{  # bare block lambda with implicit parameter $_

  (

    +^     # numeric binary negate
      -$_  # negative of the input
      +|   # numeric binary or
      1

  ) ** 2   # to the power of 2

  div 8     # integer divide it by 8

  + $_ % 2  # add one if it is odd
}
Brad Gilbert b2gills
quelle
1

05AB1E , 8 Bytes

;L¨O>¹É-

Probieren Sie es online!

Basierend auf Jonathan Allans Jelly-Ansatz (der wahrscheinlich darauf beruhte, dass OP die Frage mit einer anderen Definition der Sequenz bearbeitete), also 1-indiziert.

Erik der Outgolfer
quelle
+1. Ich hatte in 05AB1E einen ähnlichen Ansatz vorbereitet, den ich in ein paar Tagen veröffentlichen wollte, wenn niemand anderes einen veröffentlichte. Es ist etwas anders (ich verkleinere zuerst die Hälfte, bevor ich die Liste erstelle, anstatt den Schwanz zu entfernen; und ich verwende Istattdessen ¹), aber die allgemeine Vorgehensweise und die Anzahl der Bytes sind genau die gleichen:;<LO>IÉ-
Kevin Cruijssen
@ KevinCruijssen Hätte gestern gepostet, wenn ich die Fähigkeit gehabt hätte, tiefer zu denken, aber nun, dies ist die Endrunde, zu tief darüber nachzudenken ist verboten. : P
Erik der Outgolfer
Ah, ich bin froh, dass ich kein Finale mehr habe. Ich bin aber auch ziemlich beschäftigt bei der Arbeit und muss Code-Golf manchmal öfter aufschieben, als ich möchte. ; p Viel Glück bei deinen Prüfungen!
Kevin Cruijssen
1

Konvex , 10 9 Bytes

_½,ª)\2%-

Probieren Sie es online!

Basierend auf Jonathan Allans Jelly-Ansatz (der wahrscheinlich darauf beruhte, dass OP die Frage mit einer anderen Definition der Sequenz bearbeitete). 1-indiziert.

Erläuterung:

_½,ª)\2%- Stack: [A]
_         Duplicate. Stack: [A A]
 ½        Halve. Stack: [A [A]½]
  ,       Range, [0..⌊N⌋). Stack: [A [[A]½],]
   ª      Sum. Stack: [A [[A]½],]ª]
    )     Increment. Stack: [A [[[A]½],]ª])]
     \    Swap. Stack: [[[[A]½],]ª]) A]
      2   2. Stack: [[[[A]½],]ª]) A 2]
       %  Modulo. Stack: [[[[A]½],]ª]) [A 2]%]
        - Minus. Stack: [[[[[A]½],]ª]) [A 2]%]-]
Erik der Outgolfer
quelle