Evolusi OEIS

56

Dalam tantangan ini, tujuannya adalah menciptakan kembali Ensiklopedia On-Line dari Urutan Integer satu urutan pada satu waktu. Mirip dengan Evolusi Hello World , setiap jawaban tergantung pada jawaban sebelumnya.

Seiring waktu, tantangan ini akan menciptakan "silsilah keluarga" dari rangkaian OEIS. Sangat mudah untuk menambahkan ke pohon ini.

  1. Temukan jawaban sebelumnya, yang bisa berada di kedalaman N dari pohon.
  2. Tentukan angka N pertama yang dihasilkan oleh urutan jawaban itu.
  3. Temukan urutan dalam OEIS yang dimulai dengan angka-angka yang sama dan yang belum pernah digunakan sebelumnya.
  4. Tulis program untuk membuat urutan baru yang baru saja Anda temukan ini.
  5. Kirim jawaban Anda dengan kedalaman N +1

Karena tingkat jawaban Anda memengaruhi penilaian, Anda harus selalu menambahkan jawaban Anda ke pohon pada tingkat sedalam mungkin. Jika Anda tidak dapat memasukkan jawaban Anda di mana saja di pohon, Anda dapat memulai cabang pohon baru dan meletakkan jawaban Anda sebagai kedalaman 1.

Persyaratan Jawab

Ada beberapa cara untuk menampilkan urutan.

Opsi pertama adalah menulis program atau fungsi yang memasukkan angka (dari STDIN atau sebagai argumen) dan mengembalikan nomor ke-N dalam urutan yang Anda pilih. Anda dapat mengasumsikan bahwa urutannya akan ditentukan untuk N dan bahwa N dan S_N "berukuran cukup" (sehingga tidak akan menyebabkan luapan). Anda juga dapat menggunakan pengindeksan yang masuk akal, seperti 0 pengindeksan, 1 pengindeksan, atau pengindeksan yang tercantum di bawah "offset" pada halaman OEIS urutan, itu tidak masalah. Istilah yang diproduksi oleh indeks pertama harus cocok dengan istilah pertama dari entri OEIS.

Opsi kedua adalah menulis program atau fungsi yang memasukkan angka dan mengembalikan syarat N pertama dari urutan tersebut. Syarat-syarat pertama dari keluaran haruslah persyaratan pertama dari entri OEIS (Anda tidak dapat meninggalkan beberapa persyaratan pertama). Istilah berturut-turut harus dibatasi oleh deretan karakter non-digit yang sewenang-wenang, jadi 0,1 1.2/3,5;8,11berfungsi tetapi 011235811tidak masuk hitungan.

Opsi ketiga adalah membuat program yang menghasilkan aliran angka terus menerus. Demikian pula dengan opsi kedua, harus ada pembatas antara istilah yang berurutan.

Jawaban Anda harus berisi tajuk seperti ini untuk membantu penguraian Stack Snippet:

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

Jawaban Anda harus berisi kode untuk menghasilkan urutan, bersama dengan beberapa istilah pertama yang harus mengandung keturunan. Beberapa istilah ini harus didahului dengan kata yang tepatterms: sehingga pengontrol dapat menggunakannya sebagai bagian dari diagram pohon. Disarankan juga untuk menulis deskripsi urutan yang Anda pilih.

Jika posting Anda adalah jawaban kedalaman 1 dan dengan demikian tidak memiliki leluhur, Anda cukup menghilangkannya from A[number]di header Anda.

Ini adalah contoh jawaban:

# 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 ....

Persyaratan Chaining

Untuk menjadikan tantangan ini lebih adil, ada batasan untuk jawaban mana Anda bisa mengaitkan jawaban Anda. Aturan-aturan ini sebagian besar untuk mencegah satu orang dari membuat seluruh cabang pohon sendiri atau memiliki banyak "root" node.

  • Anda tidak dapat rantai ke diri sendiri.
  • Anda tidak dapat secara langsung mengaitkan dua jawaban Anda ke leluhur yang sama.
  • Anda tidak dapat membuat lebih dari satu jawaban "Tingkat 1".

Juga, jika leluhurnya memiliki kedalaman N, pos Anda harus memiliki kedalaman N + 1, bahkan jika lebih dari jumlah persyaratan yang disyaratkan.

Mencetak gol

Skor Anda sebagai pengguna adalah jumlah dari semua jawaban Anda. Skor satu jawaban ditentukan oleh rumus berikut:

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

Sistem penilaian ini harus mendorong pengguna untuk mengirimkan sejumlah besar jawaban yang lebih dalam. Jawaban yang lebih pendek lebih disukai daripada jawaban yang lebih panjang, tetapi kedalaman memiliki pengaruh yang jauh lebih besar.

Di bawah ini adalah cuplikan tumpukan yang menghasilkan leaderboard serta diagram pohon dari semua jawaban. Saya ingin mengucapkan terima kasih kepada Martin Büttner dan d3noob sebagai sumber untuk banyak kode ini. Anda harus mengklik "Layar penuh" untuk melihat hasil lengkap.

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>

PhiNotPi
sumber
5
Anda tahu, saya pikir ini mungkin hanya pertanyaan codegolf.sx terkeren yang pernah saya tanyakan. Ini tidak hanya keren, tetapi sebenarnya berguna sebagai arsip.
Todd Lehman
3
Mengingat OEIS online, mengambil N istilah urutan sebagai istilah pencarian, dan berisi matematik atau kode maple untuk banyak urutan, akan mungkin untuk menulis entri meta yang mencari entri penilaian terbaik untuk kode yang ada di OEIS yang merupakan turunan dari setiap entri yang diberikan di sini dan mempostingnya.
Abligh
2
Dapatkah saya merekomendasikan beberapa cara untuk menandai pada grafik yang dihasilkan oleh snippet bahwa sebuah node adalah terminal, yaitu tidak ada urutan yang tidak terpakai dari kedalaman yang lebih besar yang tersedia pada OEIS?
Claudiu
1
Saya pikir satu-satunya cara untuk menjaga tantangan ini tetap berjalan adalah dengan memberikan sesuatu di mana Anda memberikan nama pengguna Anda, dan itu mencantumkan masalah OEIS yang bisa Anda lakukan, dalam urutan dari kedalaman tertinggi ke terendah. Kalau tidak, akan terlalu lama untuk menemukan urutan berikutnya untuk dikirim.
Claudiu
1
SVG sedikit terlalu sempit.
CalculatorFeline

Jawaban:

21

Parenthetic, 150 byte, kedalaman 4, A000292 dari A000290

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

Jawaban berikutnya harus sesuai dengan ketentuan berikut:

0, 1, 4, 10

Ini adalah urutan angka tetrahedral, generalisasi 3D dari angka segitiga. Rumus untuk ini adalah

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

Parenthetic adalah bahasa mirip Lisp yang menggunakan tanda kurung untuk mendefinisikan segalanya. Di atas adalah fungsi ()()()yang menerima ndan mengeluarkan T(n). Sebut seperti:

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

Beranotasi

(
  define
  (() ()())

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

  (
    lambda
    (() ())

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

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

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

        n
        (() (()()))

        (
          +
          (() (()))

          n
          (() (()()))

          1
          ((()) ())
        )

        (
          +
          (() (()))

          n
          (() (()()))

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

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


Test call:

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

  6
  ((()) ()()()()()())
)
Sp3000
sumber
19
Bahasa apa ini? Ini seperti versi Lisp yang lebih kejam.
Alex A.
10
@AlexA. Itu bukan gangguan! Ini adalah Pidato Hambatan penuh!
CJ Dennis
18

Pancake Stack, 118 byte, kedalaman 1, A000012

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

Jawaban berikutnya harus sesuai dengan ketentuan berikut:

1

Ini mencetak pembagi terkecil dari n. Diuji dengan juru bahasa Python pada halaman esolang wiki . Penerjemah mengharapkan a ~on the line after untuk menunjukkan akhir dari program, setelah itu datang input STDIN (yang akan diabaikan).

Instruksi yang relevan:

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

Jawaban sebelumnya

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 "".

Yang ini dicetak dalam loop tak terbatas. Instruksi tambahan:

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

Ada instruksi lain, tetapi meskipun demikian Pancake Stack sangat rumit untuk digunakan secara normal, berkat kurangnya output numerik dan akses ke hanya dua elemen teratas dari stack.

Sayangnya, baris pertama dari program ini tampaknya perlu untuk mencegah bug terkait label pada interpreter Python.

Sp3000
sumber
17

Python, 31 byte, kedalaman 4, A010060 dari A000045

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

Jawaban berikutnya harus sesuai dengan ketentuan berikut:

0, 1, 1, 0

Yang ini favorit saya, dan ini adalah urutan Thue-Morse . Setidaknya ada dua definisi:

  • Paritas yang ada dalam ekspansi biner n(digunakan di atas), dan
  • Urutan diperoleh dengan mulai dengan 0, kemudian berulang kali menambahkan bitwise komplemen dari urutan sejauh ini (yaitu 0 -> 01 -> 0110 -> 01101001 -> ...)

Salah satu dari banyak hal keren tentang urutan ini adalah jika kita mengambil kura-kura dan melakukannya:

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()

kami mendapatkan ini:

masukkan deskripsi gambar di sini

Terlihat familier?

Sp3000
sumber
15

MarioLANG, 265 byte, kedalaman 3, A016957 dari A006370

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

Jawaban berikutnya harus sesuai dengan ketentuan berikut:

4, 10, 16

Urutan ini hanyalah perkembangan aritmatika 6n + 4.

MarioLANG adalah bahasa pemrograman esoterik berdasarkan, yah, Super Mario. Perhitungan dilakukan dengan cara seperti Brainfuck - ada sel yang bisa Anda tambahkan / kurangi.

Perintah seperti BF yang relevan di sini adalah:

+      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

Jadi dimana Mario? Yah Mario adalah penunjuk instruksi Anda, dan dia mulai di sebelah kiri (di mana ;). Mario terus menjalankan instruksi selama dia di lapangan =, dan ketika dia jatuh program akan berhenti.

Instruksi yang relevan untuk ini adalah:

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

Secara keseluruhan, program melakukan ini:

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

Diuji dengan penerjemah Ruby. Perhatikan bahwa bahasa tersebut memiliki banyak perilaku yang tidak terdefinisi, seperti apa yang terjadi pada instruksi yang dipenuhi Mario ketika dia jatuh, jadi saya mencoba menghindari semua itu.

Sp3000
sumber
12

Brainfuck, 2 byte, kedalaman 2, A000030 dari A001477

,.

A000030 adalah urutan digit awal bilangan bulat non-negatif, jadi ini hanya membaca karakter digit pertama dan menuliskannya kembali. Urutan berikutnya harus dimulai dengan ketentuan:

0, 1
Martin Ender
sumber
12
Ini mungkin program Brainfuck berguna terpendek yang pernah saya lihat.
Alex A.
9

Piet, 16 byte, kedalaman 3, A000035 dari A000030

masukkan deskripsi gambar di sini

Jawaban berikutnya harus sesuai dengan ketentuan berikut:

0, 1, 0

Ini adalah Piet, jadi "byte" benar-benar kode. Ini dia dengan ukuran codel yang lebih besar:

masukkan deskripsi gambar di sini

Program hanya membaca ndan output nmodulo 2.

Sp3000
sumber
9

Marbelous, 7 byte, kedalaman 3, A011760 dari A000027

Sudah lama sejak situs ini melihat Marbelous jawaban !

}0
<D++

Jawaban selanjutnya harus dimulai dengan ketentuan:

1, 2, 3

Anda dapat mencoba kode di interpreter Stack Snippet es1024 . Dalam put diberikan melalui argumen baris perintah, dan Anda harus memilih "Tampilkan output sebagai angka desimal". Kalau tidak, hasilnya akan menjadi output sebagai nilai byte, yang secara teknis juga baik .

Urutannya adalah urutan "tombol elevator di AS", yaitu semua bilangan bulat positif kecuali 13. Perhatikan bahwa Marbelous terbatas pada angka 8-bit, tetapi sejauh yang saya tahu tidak ada bangunan dengan hampir 256 lantai. :)

Marbelous adalah bahasa 2D di mana data mengalir melalui kode dalam bentuk kelereng (nilai byte) jatuh di grid. }0diganti dengan argumen baris perintah pertama. <Dadalah saklar yang bertindak sebagai sel kosong untuk kelereng kurang dari 13 ( Dada di basis 36), sehingga input 1 hingga 12 melewati tidak terpengaruh. Jika kelereng sama dengan atau lebih besar dari 13, kelereng dibelokkan ke kanan dan melewati ++yang menambah nilai dengan 1. Dalam kedua kasus marmer kemudian jatuh dari papan, yang mencetak nilainya.

Martin Ender
sumber
8

Rail , 56 byte, kedalaman 4, A033547 dari A002378

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

Jawaban berikutnya harus sesuai dengan ketentuan berikut:

0, 2, 6, 14

Program membaca ndari STDIN dan output n*(n^2+5)/3, yang merupakan perkiraan angka ajaib untuk model shell nuklir dari tahun 1940-an.

Rail adalah bahasa 2D yang bertema di sekitar rel kereta. Kode di atas dip Golf menggunakan @reflektor yang membalikkan arah kereta, untuk mengurangi jumlah baris baru. Ini dia ungolfed:

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

Perhatikan bagaimana Rail dimulai di kiri atas dan mulai bergerak vertikal ke kanan bawah.

Perintah manipulasi stack yang digunakan adalah:

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

Kereta bercabang di persimpangan >v<^, berbelok ke kanan jika bagian atas tumpukan benar, sebaliknya dibiarkan jika salah.

Sp3000
sumber
8

Starry, 22 byte, kedalaman 4, A008619 dari A000142

      + + +*,  +   **.

Jawaban berikutnya harus sesuai dengan ketentuan berikut:

1, 1, 2, 2

Urutannya terdiri dari bilangan bulat positif yang diulang dua kali. Program membaca dalam angka dari STDIN dan menghitung 1 + floor(n/2).

Starry adalah bahasa esoterik yang diterapkan di Ruby yang merupakan bagian dari sebuah buku tentang ... membuat bahasa esoterik di Ruby. Setiap instruksi ditentukan oleh jumlah spasi sebelum satu +*.,`'. Semua karakter lain diabaikan, jadi yang di atas setara dengan

      +
 + +*,
  +   *
*.

yang terlihat jauh lebih berbintang! (perhatikan spasi tambahan)

Perintah yang relevan adalah:

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

Jawaban sebelumnya, 53 byte

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

Ini malah menghasilkan urutan iklan infinitum. Beberapa perintah tambahan adalah:

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
Sp3000
sumber
7

Mathematica, 20 byte, kedalaman 6, A037965 dari A104631

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

Ini adalah fungsi yang tidak disebutkan namanya yang hanya menghitung definisi urutan. Urutan berikutnya harus dimulai dengan ketentuan:

0, 1, 4, 18, 80, 350
Martin Ender
sumber
Node daun (tidak ada urutan lainnya)
CalculatorFeline
7

CJam, 34 byte, kedalaman 14, A157271 dari A238263

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

Jawaban selanjutnya harus dimulai dengan ketentuan:

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

tetapi tidak ada yang tersisa yang belum dilakukan.

Membiarkan D(n)menjadi himpunan angka n3-halus pertama : yaitu, bilangan bulat yang faktor prima adalah subset dari {2, 3}. Membiarkan S(n)menjadi subset terbesar D(n)yang tidak dengan sendirinya berisi subset bentuk {x, 2x}atau {y, 3y}. Maka A157271 adalah ukuran S(n).

Peter Taylor
sumber
1
Ah bagus, saya melihat yang satu ini tetapi tidak begitu jelas apa artinya penjelasan mereka. Milikmu jauh lebih jelas.
Claudiu
6

Golfscript, 3 byte, kedalaman 3, A000290 dari A000030

~2?

Jawaban berikutnya harus sesuai dengan ketentuan berikut:

0, 1, 4

Urutan ini hanyalah angka kuadrat, sehingga program mengambil angka dan mengeluarkan kuadratnya.

Gagang pintu
sumber
6

Pendahuluan , 16 byte, kedalaman 1, A000211

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

Saya pikir saya akan memulai pohon dengan angka awal yang kurang jelas. Ini adalah umum Fibonacci urutan dengan definisi a(0) = 4, a(1) = 3, a(n) = a(n-1) + a(n-2) - 2. Akibatnya, ini sebagian besar merupakan adaptasi sederhana dari solusi Prelude Fibonacci saya . Di atas adalah program yang mencetak aliran angka tak terhingga. Ini mengasumsikan interpreter Python yang menampilkan angka bukan karakter individu.

Jawaban selanjutnya harus dimulai dengan ketentuan:

4
Martin Ender
sumber
6

Klip, 0 byte, kedalaman 2, A000027 dari A000012

Diberi nomor n, mencetak nthnomor dalam urutan1, 2, 3, 4...

Jawaban selanjutnya harus dimulai dengan ketentuan:

1, 2
Ypnypn
sumber
5

J, 4 byte, kedalaman 4, A001563 dari A000290

(*!)

Jawaban berikutnya harus sesuai dengan ketentuan berikut:

0, 1, 4, 18

Urutan ini adalah angka yang dikalikan dengan faktorialnya. In J (fg)xada di f(x,g(x))sini x*factorial(x).

randomra
sumber
Anda bisa meninggalkan tanda kurung selama 2 byte:*!
27ıʇǝɥʇuʎs
@ ɐɔıʇǝɥʇu Aku tidak akan berdebat dengan siapa pun yang mengatakan aku tidak bisa meninggalkan mereka karena ~ 1/128 bagian dari skor. :)
randomra
5

Mathematica, 48 byte, kedalaman 5, A104631 dari A001563

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

Jawaban berikutnya harus sesuai dengan ketentuan berikut:

0, 1, 4, 18, 80

Kecuali nama fungsi panjang, Mathematica benar-benar mengacaukan tantangan ini. Yang ini hanyalah koefisien x^(2n+1)dalam ekspansi

(1 + x + x^2 + x^3 + x^4)^n
Sp3000
sumber
5

Elemen , 13 byte, kedalaman 3, A000045 dari A000030

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

A000045 mewakili angka-angka Fibonacci. Setiap istilah dalam urutan adalah jumlah dari dua istilah sebelumnya. Ini perlu dicatat karena rasio antara istilah-istilah berturut-turut mendekati rasio emas, juga dikenal sebagai phi. Agak menarik, entri OEIS dimulai dengan 0, 1yang umum 1, 1. Jawaban berikutnya harus sesuai dengan ketentuan:

0, 1, 1
PhiNotPi
sumber
5

Pendahuluan , 1 byte, kedalaman 2, A000004 dari A001477

!

Jawaban berikutnya harus sesuai dengan ketentuan berikut:

0, 0

Program ini menerima nsebagai input, benar-benar mengabaikannya, dan menghasilkan konstanta nol. Ini membutuhkan NUMERIC_OUTPUT = Truejuru bahasa Python.

Yang menyenangkan tentang Prelude adalah ia memiliki persediaan nol yang tak terbatas di bagian bawah tumpukan, jadi semua yang diperlukan hanyalah perintah output tunggal.

Sp3000
sumber
4

Perl, 10 byte, kedalaman 1, A001477

Untuk memulai sesuatu, berikut ini adalah urutan sederhana.

print$_=<>

Ini mewakili angka non-negatif 0, 1, 2, 3, dll. Dengan mencetak nomor input. Urutan berikutnya harus dimulai dengan ketentuan:

0
PhiNotPi
sumber
4

GolfScript, 9 byte, kedalaman 4, A051682 dari A002275

~.9*7-*2/

Jawaban berikutnya harus sesuai dengan ketentuan berikut:

0, 1, 11, 30

Ini hanya menggunakan rumus untuk angka hendecagonal yang ditemukan di halaman OEIS.

Gagang pintu
sumber
4

Deadfish, 4 byte, kedalaman 2, A005563 dari A001477

isdo

Urutan ini didefinisikan sebagai (n+1)^2-1, yang persis seperti apa yang dilakukan oleh program ini. Karena Deadfish tidak memiliki input, diasumsikan akumulator berada pada nomor input yang diinginkan. Jawaban selanjutnya harus dimulai dengan ketentuan:

0, 3
NinjaBearMonkey
sumber
4

APL, 13 byte, kedalaman 4, A000108 dari A000142

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

Angka katalan! Pengindeksan dimulai dari nol untuk ini. Jawaban selanjutnya harus dimulai dengan ketentuan:

1, 1, 2, 5
cirpis
sumber
4

GolfScript, 31 byte, kedalaman 11, A029030 dari A242681

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

Jawaban berikutnya harus sesuai dengan ketentuan berikut:

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

tapi itu tidak akan bisa: ini adalah daun pohon. Urutan ini adalah sejumlah cara untuk memberikan perubahan dengan koin bernilai 1, 2, 10, dan 11.

Peter Taylor
sumber
3
A258000: 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 7, 42 - Beberapa urutan aneh yang mereka minta di codegolf.stackexchange.com
schnaader
4

Retina , 1 byte, kedalaman 3, A055642 dari A001333

.

Jawaban selanjutnya harus dimulai dengan ketentuan:

1, 1, 1

Saya pikir ini adalah pertama kalinya saya menggunakan Retina dalam hal lain selain mode Ganti. Jika hanya satu file yang diberikan tanpa opsi apa pun, Retina mengasumsikan mode Pencocokan, yang secara default menghitung jumlah kecocokan dari regex yang diberikan pada input. Regex ini .cocok dengan karakter apa pun. Oleh karena itu, program ini mengembalikan jumlah digit input yaitu A055642.

Martin Ender
sumber
3

Klip , 24 byte, kedalaman 4, A049666 dari A002275

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

Jawaban berikutnya harus sesuai dengan ketentuan berikut:

0, 1, 11, 122

Urutannya adil Fibonacci(5n)/5. Lihat halaman contoh untuk penjelasan.

Ypnypn
sumber
3

Klip, 37 byte, kedalaman 5, A227327 dari A000292

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

Kemungkinan cara untuk memilih dua titik pada kisi segitiga sisi n, tidak termasuk rotasi dan pantulan. Contoh yang diberikan adalah: untuk n = 3, ada 4 cara:

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

Urutan berikutnya harus dimulai dengan ketentuan berikut:

0, 1, 4, 10, 22
Ypnypn
sumber
3

APL, 24 byte, kedalaman 6, A025581 dari A182712

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

Urutan A025581 adalah urutan ... Saya tidak yakin jujur. Itu membuatku takut.

Pengindeksan dimulai pada 0 dan fungsi hanya menghitung urutan dengan definisi.

Urutan berikutnya harus dimulai dengan ketentuan:

0, 1, 0, 2, 1, 0
cirpis
sumber
Mengurangi bilangan bulat m ke 0 diikuti dengan mengurangi bilangan bulat m + 1 ke 0, dll. Itu mungkin membantu.
CalculatorFeline
3

> <>, 25 byte, kedalaman 2, A001333 dari A002522

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

Ini adalah pembilang dari konvergensi fraksi lanjutan ke sqrt (2). Kode membutuhkan pengguna untuk mengisi stack dengan indeks konvergensi yang harus dikembalikan. Pengindeksan dimulai pada 1. Jawaban berikutnya harus dimulai dengan ketentuan:

1, 1
cirpis
sumber
3

J, 44 byte, kedalaman 10, A242681 dari A026233

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

Jawaban selanjutnya harus dimulai dengan ketentuan:

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

Sesuatu yang lebih dekat dengan kehidupan sehari-hari: "jumlah cara yang ndapat diperoleh dengan menggunakan dua anak panah pada papan panah standar". Hanya pasangan skor yang tidak teratur yang penting. Mulai offset adalah dua seperti pada halaman OEIS. Pemakaian:

f 2 => 1
f 72 => 12
randomra
sumber
3

R, 20 byte, kedalaman 11, A194964 dari A242681

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

Jawaban berikutnya harus sesuai dengan ketentuan berikut:

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

Urutan A194964 memberikan untuk setiap n hasil dari 1+[n/sqrt(5)]mana [berarti "lantai". Fungsi R mengambil input sebagai stdin.

plannapus
sumber