Entwicklung von OEIS


56

In dieser Herausforderung besteht das Ziel darin, die Online -Enzyklopädie ganzzahliger Sequenzen nacheinander zu erstellen . Ähnlich wie bei der Evolution von Hello World hängt jede Antwort von einer vorherigen Antwort ab.

Mit der Zeit wird diese Herausforderung einen "Stammbaum" der OEIS-Sequenzen erzeugen. Es ist einfach, diesen Baum zu ergänzen.

  1. Finden Sie eine vorherige Antwort, die sich in jeder Tiefe N des Baums befinden kann.
  2. Bestimmen Sie die ersten N Zahlen, die durch die Sequenz dieser Antwort generiert wurden.
  3. Suchen Sie in OEIS eine Sequenz, die mit denselben Nummern beginnt und die zuvor noch nicht verwendet wurde.
  4. Schreiben Sie ein Programm, um diese neue Sequenz zu generieren, die Sie gerade gefunden haben.
  5. Senden Sie Ihre Antwort als Tiefe N + 1

Da die Stufe Ihrer Antwort die Punktzahl beeinflusst, sollten Sie Ihre Antwort immer auf der tiefstmöglichen Stufe in den Baum einfügen. Wenn Sie Ihre Antwort an keiner Stelle in den Baum einfügen können, können Sie einen neuen Zweig des Baums beginnen und Ihre Antwort als Tiefe 1 eingeben.

Anforderungen beantworten

Es gibt verschiedene Möglichkeiten, eine Sequenz auszugeben.

Die erste Möglichkeit besteht darin, ein Programm oder eine Funktion zu schreiben, die eine Zahl (von STDIN oder als Argument) eingibt und die N-te Zahl in der von Ihnen gewählten Reihenfolge zurückgibt. Sie können davon ausgehen, dass die Sequenz für N definiert wird und dass N und S_N eine "angemessene Größe" haben (damit es nicht zu Überläufen kommt). Sie können auch jede sinnvolle Indizierung verwenden, z. B. 0-Indizierung, 1-Indizierung oder die unter "Offset" auf der OEIS-Seite der Sequenz aufgeführte Indizierung, die keine Rolle spielt. Der vom ersten Index erzeugte Begriff muss mit dem ersten Begriff des OEIS-Eintrags übereinstimmen.

Die zweite Möglichkeit besteht darin, ein Programm oder eine Funktion zu schreiben, die eine Zahl eingibt und die ersten N Terme der Sequenz zurückgibt. Die ersten Ausdrücke der Ausgabe müssen die ersten Ausdrücke des OEIS-Eintrags sein (Sie können die ersten Ausdrücke nicht weglassen). Aufeinanderfolgende Ausdrücke müssen durch beliebige Zeichenfolgen mit nichtstelligen Zeichen begrenzt werden. Dies 0,1 1.2/3,5;8,11funktioniert, zählt 011235811jedoch nicht.

Die dritte Möglichkeit besteht darin, ein Programm zu erstellen, das einen kontinuierlichen Zahlenstrom ausgibt. Ähnlich wie bei der zweiten Option müssen Trennzeichen zwischen aufeinanderfolgenden Begriffen vorhanden sein.

Ihre Antwort sollte einen Header wie diesen enthalten, um das Analysieren von Stack-Snippets zu erleichtern:

 # [language], [number] bytes, depth [number], A[new sequence] from A[old sequence] 

Ihre Antwort sollte den Code zum Generieren der Sequenz enthalten, zusammen mit den ersten Begriffen, die Nachkommen enthalten müssen. Vorterms: diesen wenigen Begriffen sollte das genaue Wort stehen, damit der Controller sie als Teil des Baumdiagramms verwenden kann. Es wird auch empfohlen, eine Beschreibung der von Ihnen gewählten Sequenz zu verfassen.

Wenn Ihr Beitrag eine Antwort der Tiefe 1 ist und daher keinen Vorfahren hat, sollten Sie das from A[number]in Ihrem Header einfach weglassen .

Hier ist eine Beispielantwort:

# Perl, 26 bytes, depth 3, A026305 from A084912

    various code here
    and here

The next answer should match the following terms:

    1, 4, 20

This sequence is .... and does ....

Verkettungsanforderungen

Um diese Herausforderung fairer zu gestalten, gibt es Einschränkungen, an welche Antworten Sie Ihre verketten können. Diese Regeln dienen hauptsächlich dazu, zu verhindern, dass eine einzelne Person einen ganzen Zweig des Baums selbst erstellt oder viele "Wurzel" -Knoten besitzt.

  • Sie können nicht an sich selbst ketten.
  • Sie können nicht zwei Ihrer Antworten direkt an denselben Vorfahren ketten.
  • Sie können nicht mehr als eine "Level 1" -Antwort geben.

Wenn der Vorfahr Tiefe N hat, muss Ihr Beitrag Tiefe N + 1 haben, auch wenn mehr als die erforderliche Anzahl von Begriffen übereinstimmt.

Wertung

Ihre Punktzahl als Benutzer ist die Summe der Punkte aller Ihrer Antworten. Die Punktzahl einer einzelnen Antwort wird durch die folgende Formel bestimmt:

Answer Score = Sqrt(Depth) * 1024 / (Length + 256)

Dieses Bewertungssystem sollte Benutzer dazu ermutigen, eine große Anzahl tiefer gehender Antworten einzureichen. Kürzere Antworten werden längeren Antworten vorgezogen, aber die Tiefe hat einen viel größeren Einfluss.

Unten finden Sie einen Stapelausschnitt, der eine Rangliste sowie ein Baumdiagramm aller Antworten generiert. Ich möchte Martin Büttner und d3noob als Quellen für viel Code danken . Sie sollten auf "Vollbild" klicken, um die vollständigen Ergebnisse anzuzeigen.

function answersUrl(t){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+t+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(t){answers.push.apply(answers,t.items),t.has_more?getAnswers():process()}})}function shouldHaveHeading(t){var e=!1,r=t.body_markdown.split("\n");try{e|=/^#/.test(t.body_markdown),e|=["-","="].indexOf(r[1][0])>-1,e&=LANGUAGE_REG.test(t.body_markdown)}catch(a){}return e}function shouldHaveScore(t){var e=!1;try{e|=SIZE_REG.test(t.body_markdown.split("\n")[0])}catch(r){}return e}function getAuthorName(t){return t.owner.display_name}function decodeEntities(t){return $("<textarea>").html(t).text()}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading),answers.reverse();var t={},e=[],r=1,a=null,n=1,s=[];answers.forEach(function(t){var r=t.body_markdown.split("\n")[0],a=getAuthorName(t),n=r.match(SEQUENCE_REG)[0];n=n.trim();var o="from A000000";PARENT_REG.test(r)&&(o=r.match(PARENT_REG)[0]),o=o.substring(5).trim(),"A000000"==o&&(o="OEIS");var i="";SEQDATA_REG.test(t.body_markdown)&&(i=t.body_markdown.match(SEQDATA_REG)[1]);for(var u=!0,c=0;c<e.length;++c)u=u&&!(e[c]===n);for(var l=!0,c=0;c<e.length;++c)l=!(!l||e[c]===n||e[c]===n+a||e[c]===o+a);e.push(n),e.push(n+a),e.push(o+a),u&&data.push({name:n,parent:o,term:i+" : ",author:decodeEntities(a),URL:t.share_link}),l&&s.push(t)}),answers.sort(function(t,e){var r=t.body_markdown.split("\n")[0].match(SEQUENCE_REG),a=e.body_markdown.split("\n")[0].match(SEQUENCE_REG);return a>r?-1:r>a?1:void 0}),answers.forEach(function(e){var o=e.body_markdown.split("\n")[0],i=(o.match(NUMBER_REG)[0],(o.match(SIZE_REG)||[0])[0]),u=parseInt((o.match(DEPTH_REG)||[0])[0]).toString(),c=o.match(SEQUENCE_REG)[0],l="from A000000";PARENT_REG.test(o)&&(l=o.match(PARENT_REG)[0]),l=l.substring(5);var d=o.match(LANGUAGE_REG)[1];d.indexOf("]")>0&&(d=d.substring(1,d.indexOf("]")));for(var p=getAuthorName(e),E=!1,h=0;h<s.length;++h)E=E||s[h]===e;if(E){var f=jQuery("#answer-template").html();i!=a&&(n=r),a=i,++r;var m=1024*Math.pow(parseInt(u),.5)/(parseInt(i)+256);f=f.replace("{{SEQUENCE}}",c).replace("{{SEQUENCE}}",c).replace("{{NAME}}",p).replace("{{LANGUAGE}}",d).replace("{{SIZE}}",i).replace("{{DEPTH}}",u).replace("{{LINK}}",e.share_link),f=jQuery(f),jQuery("#answers").append(f),t[p]=t[p]||{lang:d,user:p,size:"0",numanswers:"0",link:e.share_link},t[p].size=(parseFloat(t[p].size)+m).toString(),t[p].numanswers=(parseInt(t[p].numanswers)+1).toString()}});var o=[];for(var i in t)t.hasOwnProperty(i)&&o.push(t[i]);o.sort(function(t,e){return parseFloat(t.size)>parseFloat(e.size)?-1:parseFloat(t.size)<parseFloat(e.size)?1:0});for(var u=0;u<o.length;++u){var c=jQuery("#language-template").html(),i=o[u];c=c.replace("{{RANK}}",u+1+".").replace("{{NAME}}",i.user).replace("{{NUMANSWERS}}",i.numanswers).replace("{{SIZE}}",i.size),c=jQuery(c),jQuery("#languages").append(c)}createTree()}function createTree(){function t(){var t=i.nodes(root).reverse(),e=i.links(t);t.forEach(function(t){t.y=180*t.depth});var r=c.selectAll("g.node").data(t,function(t){return t.id||(t.id=++o)}),a=r.enter().append("g").attr("class","node").attr("transform",function(t){return"translate("+t.y+","+t.x+")"});a.append("a").attr("xlink:href",function(t){return t.URL}).append("circle").attr("r",10).style("fill","#fff"),a.append("text").attr("x",function(){return 0}).attr("y",function(){return 20}).attr("dy",".35em").attr("text-anchor",function(){return"middle"}).text(function(t){return t.term+t.name}).style("fill-opacity",1),a.append("text").attr("x",function(){return 0}).attr("y",function(){return 35}).attr("dy",".35em").attr("text-anchor",function(){return"middle"}).text(function(t){return t.author}).style("fill-opacity",1);var n=c.selectAll("path.link").data(e,function(t){return t.target.id});n.enter().insert("path","g").attr("class","link").attr("d",u)}var e=data.reduce(function(t,e){return t[e.name]=e,t},{}),r=[];data.forEach(function(t){var a=e[t.parent];a?(a.children||(a.children=[])).push(t):r.push(t)});var a={top:20,right:120,bottom:20,left:120},n=3203-a.right-a.left,s=4003-a.top-a.bottom,o=0,i=d3.layout.tree().size([s,n]),u=d3.svg.diagonal().projection(function(t){return[t.y,t.x]}),c=d3.select("body").append("svg").attr("width",n+a.right+a.left).attr("height",s+a.top+a.bottom).append("g").attr("transform","translate("+a.left+","+a.top+")");root=r[0],t(root)}var QUESTION_ID=49223,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",data=[{name:"OEIS",parent:"null",term:"",author:"",URL:"https://oeis.org/"}],answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:&lt;(?:s&gt;[^&]*&lt;\/s&gt;|[^&]+&gt;)[^\d&]*)*,)/,DEPTH_REG=/\d+, A/,NUMBER_REG=/\d+/,LANGUAGE_REG=/^#*\s*([^,]+)/,SEQUENCE_REG=/A\d+/,PARENT_REG=/from\s*A\d+/,SEQDATA_REG=/terms:\s*(?:(?:-)?\d+,\s*)*((?:-)?\d+)/;
body{text-align: left !important}#answer-list{padding: 10px; width: 550px; float: left;}#language-list{padding: 10px; width: 290px; float: left;}table thead{font-weight: bold;}table td{padding: 5px;}.node circle{fill: #fff; stroke: steelblue; stroke-width: 3px;}.node text{font: 12px sans-serif;}.link{fill: none; stroke: #ccc; stroke-width: 2px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script src="http://d3js.org/d3.v3.min.js"></script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id="answer-list"> <h2>Sequence List</h2> <table class="answer-list"> <thead> <tr> <td>Sequence</td><td>Author</td><td>Language</td><td>Size</td><td>Depth</td></tr></thead> <tbody id="answers"></tbody> </table></div><div id="language-list"> <h2>Leaderboard</h2> <table class="language-list"> <thead> <tr> <td>Rank</td><td>User</td><td>Answers</td><td>Score</td></tr></thead> <tbody id="languages"></tbody> </table></div><table style="display: none"> <tbody id="answer-template"> <tr> <td><a href="https://oeis.org/{{SEQUENCE}}">{{SEQUENCE}}</a></td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td>{{DEPTH}}</td><td><a href="{{LINK}}">Link</a> </td></tr></tbody></table><table style="display: none"> <tbody id="language-template"> <tr> <td>{{RANK}}</td><td>{{NAME}}</td><td>{{NUMANSWERS}}</td><td>{{SIZE}}</td></tr></tbody></table>


5
Weißt du, ich denke das ist vielleicht die coolste codegolf.sx Frage, die ich je gesehen habe. Es ist nicht nur cool, sondern auch als Archiv nützlich.
Todd Lehman

3
Wenn der OEIS online ist, N Terme einer Sequenz als Suchbegriff verwendet und Mathematica- oder Maple-Code für viele der Sequenzen enthält, kann ein Metaeintrag geschrieben werden, der nach dem Eintrag mit der besten Bewertung sucht, für den der Code existiert in OEIS, die ein Nachkomme eines bestimmten Eintrags hier ist und es gepostet.
abligh

2
Kann ich eine Methode empfehlen, um im Diagramm, das das Snippet generiert, zu markieren, dass ein Knoten terminal ist, dh, es sind keine unbenutzten Sequenzen mit größerer Tiefe im OEIS verfügbar?
Claudiu

1
Ich denke, die einzige Möglichkeit, diese Herausforderung aufrechtzuerhalten, besteht darin, einen Namen anzugeben, in dem Sie Ihren Benutzernamen eingeben. Darin sind die möglichen OEIS-Probleme aufgelistet, und zwar in der Reihenfolge von der höchsten zur niedrigsten Tiefe. Andernfalls dauert es zu lange, um die nächste zu sendende Sequenz zu finden.
Claudiu

1
Die SVG ist etwas zu eng.
CalculatorFeline

Antworten:


21

Parenthetic, 150 Bytes, Tiefe 4, A000292 von A000290

((()()())(()()()())((()())((()(()())))((()(())())((()()(()))(()(()()))((()(()))(()(()()))((())()))((()(()))(()(()()))((())()())))((())()()()()()()))))

Die nächste Antwort sollte mit den folgenden Begriffen übereinstimmen:

0, 1, 4, 10

Dies ist die Folge von Tetraedern, die 3D-Generalisierung von Dreieckszahlen. Die Formel dafür lautet

T(n) = n*(n+1)*(n+2)/6

Parenthetic ist eine Lisp-ähnliche Sprache, die Klammern verwendet, um alles zu definieren. Das Obige ist eine Funktion, ()()()die Ein- nund Ausgänge übernimmt T(n). Rufen Sie an wie:

((()()()())((())()()()()()()()))

Kommentiert

(
  define
  (() ()())

  f [][][]
  (() ()()())

  (
    lambda
    (() ())

    (
      n [[][]]
      (() (()()))
    )

    (
      div
      (() (())())

      (
        *
        (() ()(()))

        n
        (() (()()))

        (
          +
          (() (()))

          n
          (() (()()))

          1
          ((()) ())
        )

        (
          +
          (() (()))

          n
          (() (()()))

          2
          ((()) ()())
        )
      )

      6
      ((()) ()()()()()())
    )
  )
)


Test call:

(
  f
  (() ()()())

  6
  ((()) ()()()()()())
)

19
Was in aller Welt ist diese Sprache? Es ist wie eine gemeinere Version von Lisp.
Alex A.

10
@AlexA. Das ist kein Lisp! Es ist eine ausgewachsene Sprachbehinderung!
CJ Dennis

18

Pancake Stack, 118 Bytes, Tiefe 1, A000012

Put this kindercarnavalsoptochtvoorbereidingswerkzaamheden pancake on top!
Show me a pancake!
Eat all of the pancakes!

Die nächste Antwort sollte mit den folgenden Begriffen übereinstimmen:

1

Dies druckt den kleinsten Teiler von n. Getestet mit dem Python-Interpreter auf der esolang-Wiki-Seite . Der Interpreter erwartet ein ~in der Zeile danach, um das Programmende zu kennzeichnen, woraufhin die STDIN-Eingabe erfolgt (die ohnehin ignoriert wird).

Relevante Anweisungen:

Put this <blah> pancake on top!                # Push length of <blah> 
Show me a pancake!                             # Output top of stack as char
Eat all of the pancakes!                       # Terminate the program

Vorherige Antwort

Put this  pancake on top!
[]
Put this kindercarnavalsoptochtvoorbereidingswerkzaamheden pancake on top!
Show me a pancake!
Put this delectable pancake on top!
Show me a pancake!
If the pancake is tasty, go over to "".

Dieser druckt in einer Endlosschleife. Zusätzliche Anweisungen:

[<blah>]                                       # Define the label <blah>
If the pancake is tasty, go over to "<blah>".  # If top of stack nonzero, go to label

Es gibt noch andere Anweisungen, aber dennoch ist die normale Verwendung von Pancake Stack sehr umständlich, da keine numerische Ausgabe vorliegt und nur auf die beiden obersten Elemente des Stapels zugegriffen werden kann.

Leider scheint die erste Zeile dieses Programms notwendig zu sein, um einen Fehler in Bezug auf Labels im Python-Interpreter zu vermeiden.


17

Python, 31 Bytes, Tiefe 4, A010060 von A000045

lambda n:sum(map(ord,bin(n)))%2

Die nächste Antwort sollte mit den folgenden Begriffen übereinstimmen:

0, 1, 1, 0

Dies ist einer meiner Favoriten und es ist die Thue-Morse-Sequenz . Es gibt mindestens zwei Definitionen:

  • Die Parität von Einsen in der binären Erweiterung von n(oben verwendet) und
  • Die Sequenz, die erhalten wird, indem mit 0 begonnen und dann wiederholt das bitweise Komplement der Sequenz angehängt wird (dh 0 -> 01 -> 0110 -> 01101001 -> ...)

Eines von vielen coolen Dingen an dieser Sequenz ist, wenn wir uns eine Schildkröte schnappen und Folgendes tun:

import turtle

turtle.speed(0)
n = 12

# Calculate first 2^n of Thue-Morse
tm = map(lambda n:sum(map(ord,bin(n)))%2, range(2**n)) 

# Move to top left
turtle.penup()
turtle.setx(-300)
turtle.sety(300)
turtle.pendown()

# For each num, go forward a unit if 0, or turn left 120 degrees if 1
for m in tm:
    if m == 0:
        turtle.forward(1)

    elif m == 1:
        turtle.left(120)

turtle.hideturtle()
turtle.mainloop()

wir bekommen das:

Bildbeschreibung hier eingeben

Ähnlich aussehend?


15

MarioLANG, 265 Bytes, Tiefe 3, A016957 von A006370

                           <
         =================="
               (((+)< ))+(<
              ======" ===="
               >-))+!  >-(!
               "====#  "==#
          >-(>[!))   >[!(  !
          "====#=======#===#
;)++++++>[!))++++:
==========#=======

Die nächste Antwort sollte mit den folgenden Begriffen übereinstimmen:

4, 10, 16

Die Folge ist lediglich die arithmetische Folge 6n + 4.

MarioLANG ist eine esoterische Programmiersprache, die auf Super Mario basiert. Die Berechnungen werden Brainfuck- ähnlich durchgeführt - es gibt ein Zellband, das Sie erhöhen / verringern können.

Die relevanten BF-ähnlichen Befehle sind hier:

+      Increment current memory cell
-      Decrement current memory cell
(      Move memory pointer left
)      Move memory pointer right
;      Numeric input
:      Numeric output
[      Skip next instruction is current cell is zero

Wo ist der Mario? Nun, Mario ist dein Anweisungszeiger und er beginnt links (wo ;ist). Mario führt weiterhin Anweisungen aus, solange er am Boden =ist und wenn er fällt, endet das Programm.

Die relevanten Anweisungen hierfür sind:

=      Ground for Mario to stand on
<      Make Mario move leftward
>      Make Mario move rightward
!      Make Mario stop moving
#      Elevator start
"      Elevator end

Alles in allem macht das Programm Folgendes:

Put input (n) in cell 0
Increment cell 1 to 6
While cell 1 is not zero...
    Decrement cell 1
    Move n from cell 0 to cells 2, 3
    Move n from cell 2 to cell 0
Increment cell 3 by 4
Output as num

Getestet mit dem Ruby-Interpreter. Beachten Sie, dass die Sprache viele undefinierte Verhaltensweisen aufweist, z. B. was mit Anweisungen geschieht, die Mario beim Fallen trifft. Deshalb habe ich versucht, all dies zu vermeiden.


12

Brainfuck, 2 Bytes, Tiefe 2, A000030 von A001477

,.

A000030 ist die Folge der Anfangsziffern der nicht-negativen Ganzzahlen, so dass hiermit einfach das Zeichen der ersten Ziffer gelesen und zurückgeschrieben wird. Die nächste Sequenz sollte mit den Begriffen beginnen:

0, 1

12
Dies ist vielleicht das kürzeste nützliche Brainfuck-Programm, das ich je gesehen habe.
Alex A.

9

Piet, 16 Byte, Tiefe 3, A000035 von A000030

Bildbeschreibung hier eingeben

Die nächste Antwort sollte mit den folgenden Begriffen übereinstimmen:

0, 1, 0

Das ist Piet, also sind die "Bytes" wirklich Codels. Hier ist es bei einer größeren Codelgröße:

Bildbeschreibung hier eingeben

Das Programm liest einfach Modulo 2 ein nund gibt es aus n.


9

Marbelous, 7 Bytes, Tiefe 3, A011760 von A000027

Es ist schon eine Weile her, dass diese Seite eine marmorhafte Antwort erhalten hat!

}0
<D++

Die nächste Antwort sollte mit den Begriffen beginnen:

1, 2, 3

Sie können den Code im Stack Snippet-Interpreter von es1024 ausprobieren . In put wird über ein Befehlszeilenargument angegeben, und Sie sollten "Ausgabe als Dezimalzahl anzeigen" auswählen. Ansonsten wird das Ergebnis als Byte-Wert ausgegeben, was technisch auch in Ordnung ist .

Die Reihenfolge ist die Reihenfolge der "Aufzugstasten in den USA", dh alle positiven ganzen Zahlen außer 13. Beachten Sie, dass Marbelous auf 8-Bit-Zahlen beschränkt ist, aber meines Wissens gibt es keine Gebäude mit etwa 256 Stockwerken. :)

Marbelous ist eine 2D-Sprache, in der Daten in Form von Murmeln (Byte-Werten) durch den Code fließen, die das Raster hinunterfallen. }0wird durch das erste Befehlszeilenargument ersetzt. <Dist ein Schalter, der als leere Zelle fungiert, um weniger als 13 Murmeln (das Dbefindet sich in Basis 36), so dass die Eingänge 1 bis 12 unbeeinflusst durchlaufen. Wenn der Marmor gleich oder größer als 13 ist, wird der Marmor nach rechts abgelenkt und durchläuft den, ++der den Wert um 1 erhöht. In beiden Fällen fällt der Marmor von der Tafel, die seinen Wert druckt.


8

Schiene , 56 Byte, Tiefe 4, A033547 ab A002378

$'main'
 0/aima19-@
@------e<
  /()(!!)-@
@-()m5a()m3do#

Die nächste Antwort sollte mit den folgenden Begriffen übereinstimmen:

0, 2, 6, 14

Das Programm liest naus STDIN und Outputs ein n*(n^2+5)/3, was eine Vermutung der magischen Zahlen für das Kernschalenmodell aus den 1940er Jahren war.

Rail ist eine 2D-Sprache, die sich mit Eisenbahngleisen befasst. Der obige Code wird mit @Reflektoren gespielt, die die Richtung des Zuges umkehren, um die Anzahl der Zeilenumbrüche zu verringern. Hier ist es ungolfed:

$ 'main'
 \
  0
   \ /--aima19--\
    |           |
    \--e-------<
                \
                 \-(!n!)-(n)-(n)-m-5-a-(n)-m-3-d-o-#

Beachten Sie, wie Rail oben links beginnt und sich vertikal nach unten rechts bewegt.

Die verwendeten Stapelmanipulationsbefehle sind:

0-9       Push 0-9 respectively
e         Push t (true) if EOF, else f (false)
i         Input char
o         Output
a         Add
m         Multiply
(!n!)     Store top of stack as variable n
(n)       Push variable n to stack
#         Halt program

Der Zug >v<^biegt an Kreuzungen nach rechts ab, wenn der obere Teil des Stapels wahr ist, andernfalls nach links, wenn falsch.


8

Sternenklar, 22 Bytes, Tiefe 4, A008619 von A000142

      + + +*,  +   **.

Die nächste Antwort sollte mit den folgenden Begriffen übereinstimmen:

1, 1, 2, 2

Die Sequenz besteht aus den positiven ganzen Zahlen, die zweimal wiederholt werden. Das Programm liest eine Zahl aus STDIN ein und berechnet 1 + floor(n/2).

Starry ist eine in Ruby implementierte esoterische Sprache, die Teil eines Buches über die ... Herstellung esoterischer Sprachen in Ruby war. Jeder Befehl wird durch die Anzahl der Leerzeichen vor einem von bestimmt +*.,`'. Alle anderen Zeichen werden ignoriert, daher entspricht das oben Gesagte

      +
 + +*,
  +   *
*.

das sieht viel sternenklarer aus! (Beachten Sie die nachstehenden Leerzeichen)

Die relevanten Befehle sind:

Spaces     Final      Instruction
------     -----      -----------
n >= 5     +          Push n-5 to stack
1          +          Duplicate top of stack
0 mod 5    *          Add
0 mod 2    ,          Input num
2          +          Swap top 2
3 mod 5    *          Divide
0 mod 2    .          Output num

Vorherige Antwort 53 Bytes

      +` +.               + + .  + +.  + .      +* +'

Dies erzeugt stattdessen die Sequenz ad infinitum. Einige zusätzliche Befehle sind:

Spaces     Final      Instruction
------     -----      -----------
1 mod 2    .          Output as ASCII char
n          `          Mark a label n
n          '          Pop and if nonzero, jump back to label n

7

Mathematica, 20 Bytes, Tiefe 6, A037965 von A104631

Binomial[2#-2,#-1]#&

Dies ist eine unbenannte Funktion, die einfach die Definition der Sequenz berechnet. Die nächste Sequenz sollte mit den Begriffen beginnen:

0, 1, 4, 18, 80, 350

Blattknoten (keine anderen Sequenzen)
CalculatorFeline

7

CJam, 34 Byte, Tiefe 14, A157271 von A238263

qi_,_m*{~2@#3@#*}$<::+1f&_:+\1-,e>

Die nächste Antwort sollte mit den Begriffen beginnen:

1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7

aber es gibt keine mehr, die noch nicht fertig sind.

Sei D(n)die Menge der ersten n3-glatten Zahlen, dh der ganzen Zahlen, deren Primfaktoren eine Teilmenge von sind {2, 3}. Sei S(n)die größte Teilmenge, D(n)die selbst keine Teilmenge des Formulars {x, 2x}oder enthält {y, 3y}. Dann ist A157271 die Größe von S(n).


1
Ah, schön, ich habe mir diesen angeschaut, war mir aber nicht ganz klar, was ihre Erklärung bedeutete. Dein ist viel klarer.
Claudiu

6

Golfscript, 3 Bytes, Tiefe 3, A000290 von A000030

~2?

Die nächste Antwort sollte mit den folgenden Begriffen übereinstimmen:

0, 1, 4

Diese Folge besteht einfach aus den Quadratzahlen, daher nimmt das Programm eine Zahl und gibt ihr Quadrat aus.


6

Vorspiel , 16 Bytes, Tiefe 1, A000211

3(v!  v)
4 ^+2-^

Ich dachte, ich würde einen Baum mit einer weniger offensichtlichen Anfangsnummer beginnen. Dies ist eine verallgemeinerte Fibonacci - Folge mit Definition a(0) = 4, a(1) = 3, a(n) = a(n-1) + a(n-2) - 2. Infolgedessen handelt es sich meistens um eine einfache Anpassung meiner Prelude-Fibonacci-Lösung . Das obige Programm gibt einen unendlichen Strom der Zahlen aus. Es wird der Python-Interpreter vorausgesetzt, der Zahlen anstelle einzelner Zeichen ausgibt.

Die nächste Antwort sollte mit den Begriffen beginnen:

4

6

Clip, 0 Byte, Tiefe 2, A000027 von A000012

Gibt bei einer gegebenen Nummer ndie nthNummer in der Reihenfolge aus1, 2, 3, 4...

Die nächste Antwort sollte mit den Begriffen beginnen:

1, 2

5

J, 4 Bytes, Tiefe 4, A001563 von A000290

(*!)

Die nächste Antwort sollte mit den folgenden Begriffen übereinstimmen:

0, 1, 4, 18

Diese Folge ist die Zahl multipliziert mit ihrer Fakultät. In J (fg)xist f(x,g(x))hier x*factorial(x).


Sie könnten die Klammern für 2 Bytes *!
weglassen

@ ɐɔıɐɔuʇǝɥʇs Ich werde mich mit niemandem streiten, der sagt, ich kann sie nicht für ~ 1/128 Teil der Partitur auslassen. :)
randomra

5

Mathematica, 48 Bytes, Tiefe 5, A104631 von A001563

SeriesCoefficient[((x^5-1)/(x-1))^#,{x,0,2#+1}]&

Die nächste Antwort sollte mit den folgenden Begriffen übereinstimmen:

0, 1, 4, 18, 80

Abgesehen von den langen Funktionsnamen ist Mathematica absolut begeistert von dieser Herausforderung. Dieser ist einfach der Koeffizient x^(2n+1)der Ausdehnung von

(1 + x + x^2 + x^3 + x^4)^n

5

Element , 13 Byte, Tiefe 3, A000045 von A000030

1_'0[3:~2@+]`

A000045 repräsentiert die Fibonacci-Zahlen. Jeder Term in der Sequenz ist die Summe der beiden vorherigen Terms. Es ist bemerkenswert, weil sich das Verhältnis zwischen aufeinanderfolgenden Begriffen dem goldenen Verhältnis nähert, das auch als Phi bekannt ist. Interessanterweise beginnt der OEIS-Eintrag mit 0, 1dem allgemeinen 1, 1. Die nächste Antwort sollte mit den Begriffen übereinstimmen:

0, 1, 1

5

Präludium , 1 Byte, Tiefe 2, A000004 von A001477

!

Die nächste Antwort sollte mit den folgenden Begriffen übereinstimmen:

0, 0

Dieses Programm übernimmt ndie Eingabe, ignoriert sie vollständig und gibt die Nullkonstante aus. Es erfordert NUMERIC_OUTPUT = Trueim Python-Interpreter.

Das Schöne an Prelude ist, dass es am Ende des Stapels unendlich viele Nullen gibt, sodass nur ein einziger Ausgabebefehl erforderlich war.


4

Perl, 10 Bytes, Tiefe 1, A001477

Zum Auftakt folgt eine einfache Sequenz.

print$_=<>

Dies stellt die nicht negativen Zahlen 0, 1, 2, 3 usw. dar, indem die eingegebene Zahl gedruckt wird. Die nächste Sequenz sollte mit den Begriffen beginnen:

0

4

GolfScript, 9 Bytes, Tiefe 4, A051682 von A002275

~.9*7-*2/

Die nächste Antwort sollte mit den folgenden Begriffen übereinstimmen:

0, 1, 11, 30

Hierfür wird einfach die Formel für Endekagonalzahlen verwendet, die auf der OEIS-Seite zu finden ist.


4

Deadfish, 4 Bytes, Tiefe 2, A005563 von A001477

isdo

Diese Sequenz ist definiert als (n+1)^2-1, was genau dieses Programm tut. Da Deadfish keine Eingabe hat, wird davon ausgegangen, dass sich der Akku an der gewünschten Eingabenummer befindet. Die nächste Antwort sollte mit den Begriffen beginnen:

0, 3

4

APL, 13 Byte, Tiefe 4, A000108 von A000142

{(⍵!2×⍵)÷⍵+1}

Katalanische Zahlen! Die Indizierung beginnt für diese bei Null. Die nächste Antwort sollte mit den Begriffen beginnen:

1, 1, 2, 5

4

GolfScript, 31 Byte, Tiefe 11, A029030 von A242681

~][11.(2]{:C;{{.C-.)0>}do;}%}/,

Die nächste Antwort sollte mit den folgenden Begriffen übereinstimmen:

1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 7

aber es wird nicht in der Lage sein: Dies ist ein Blatt des Baumes. Diese Reihenfolge gibt die Anzahl der Möglichkeiten an, mit Münzen der Werte 1, 2, 10 und 11 Wechselgeld zu geben.


3
A258000: 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 7, 42 - Irgendeine seltsame Reihenfolge, nach der sie gefragt haben bei codegolf.stackexchange.com
schnaader

4

Retina , 1 Byte, Tiefe 3, A055642 von A001333

.

Die nächste Antwort sollte mit den Begriffen beginnen:

1, 1, 1

Ich denke, dies ist das erste Mal, dass ich Retina in etwas anderem als dem Ersetzen-Modus verwende. Wenn nur eine einzelne Datei ohne Optionen angegeben wird, geht Retina in den Übereinstimmungsmodus über, in dem standardmäßig die Anzahl der Übereinstimmungen des angegebenen regulären Ausdrucks in der Eingabe gezählt wird. Dieser reguläre Ausdruck ist .und passt zu jedem Zeichen. Daher gibt dieses Programm die Anzahl der Stellen der Eingabe zurück, die A055642 ist.


3

Clip , 24 Byte, Tiefe 4, A049666 von A002275

/F*5nx5[Fx?<x3O]+F(xF((x

Die nächste Antwort sollte mit den folgenden Begriffen übereinstimmen:

0, 1, 11, 122

Die Reihenfolge ist einfach Fibonacci(5n)/5. Eine Erklärung finden Sie auf der Beispielseite .


3

Clip, 37 Byte, Tiefe 5, A227327 von A000292

[t/m++#t4*2#t3*8#t2?%t2+*2t9]*8t]48]n

Mögliche Auswahlmöglichkeiten für zwei Punkte in einem Dreiecksgitter von Seite n, ohne Rotationen und Reflexionen. Das angegebene Beispiel lautet: Für n = 3 gibt es 4 Möglichkeiten:

  X        X        X        .
 X .      . .      . .      X X
. . .    X . .    . X .    . . .

Die nächste Sequenz muss mit folgenden Begriffen beginnen:

0, 1, 4, 10, 22

3

APL, 24 Byte, Tiefe 6, A025581 von A182712

{¯1-⍵-2!1+⌊.5+.5*⍨2×1+⍵}

Die Sequenz A025581 ist die Sequenz von ... Ich bin nicht ganz sicher, ob ich ehrlich bin . Es macht mir Angst.

Die Indizierung beginnt bei 0 und die Funktion berechnet nur die Reihenfolge per Definition.

Die nächste Sequenz sollte mit den Begriffen beginnen:

0, 1, 0, 2, 1, 0

Verringern Sie die Ganzzahlen m auf 0, gefolgt von einer Verringerung der Ganzzahlen m + 1 auf 0 usw. Das könnte helfen.
CalculatorFeline

3

> <>, 25 Bytes, Tiefe 2, A001333 von A002522

301-v >rn;
*2@:<r^!?:-1r+

Dies sind die Zähler der fortgesetzten Fraktionen, die zu sqrt (2) konvergieren. Für den Code muss der Benutzer den Stapel mit dem Index der Konvergenz füllen, die zurückgegeben werden soll. Die Indizierung beginnt bei 1. Die nächste Antwort sollte mit den Begriffen beginnen:

1, 1

3

J, 44 Bytes, Tiefe 10, A242681 von A026233

f=.(,(<:*+)"0/~~.50,25,(,+:,3*])1+i.20)+/@:=]

Die nächste Antwort sollte mit den Begriffen beginnen:

1, 1, 2, 2, 3, 3, 4, 4, 5, 5

Etwas näher am Alltag: "Die Anzahl der Möglichkeiten, mit ndenen mit zwei Pfeilen auf einer Standard-Dartscheibe eine Punktzahl erzielt werden kann". Nur das ungeordnete Score-Paar ist von Bedeutung. Der Startoffset beträgt wie auf der OEIS-Seite zwei. Verwendungszweck:

f 2 => 1
f 72 => 12

3

R, 20 Bytes, Tiefe 11, A194964 von A242681

1+floor(scan()/5^.5)

Die nächste Antwort sollte mit den folgenden Begriffen übereinstimmen:

1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5

Die Folge A194964 gibt für jedes n das Ergebnis von 1+[n/sqrt(5)]wo [bedeutet "Etage". Die R-Funktion übernimmt die Eingabe als stdin.

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.