OEIS'in Gelişimi


56

Bu zorluğun amacı, On-Line Tamsayı Dizileri Ansiklopedisi'nin her seferinde bir diziyi yeniden oluşturmaktır . Merhaba Dünya'nın Evrimi'ne benzer şekilde , her bir cevap önceki bir cevaba bağlıdır.

Zamanla, bu zorluk OEIS dizilerinin bir "soy ağacı" yaratacaktır. Bu ağaca eklemek kolaydır.

  1. Ağacın herhangi bir derinliğinde N olabilecek önceki bir cevabı bulun.
  2. Bu cevaplayıcı tarafından üretilen ilk N sayısını belirleyin.
  3. OEIS'te aynı numaralarla başlayan ve daha önce kullanılmamış bir dizi bulun.
  4. Yeni bulduğun bu diziyi oluşturmak için bir program yaz.
  5. Cevabınızı derinlik N + 1 olarak gönderin

Cevabınızın seviyesi puanlamayı etkilediğinden, cevabınızı her zaman mümkün olan en derin seviyede ağaca eklemelisiniz. Cevabınızı ağacın hiçbir yerine sığdıramazsanız, ağacın yeni bir dalını başlatabilir ve cevabınızı derinlik 1 olarak koyabilirsiniz.

Cevap Gereksinimleri

Bir diziyi çıkarmanın birkaç yolu vardır.

İlk seçenek, bir sayı giren bir program veya işlev yazmaktır (STDIN'den veya bir argüman olarak) ve N'ci sayıyı seçtiğiniz sırada döndürür. Dizinin N için tanımlanacağını ve N ve S_N'nin "makul boyutta" olduğunu varsayabilir (taşmalara neden olmaz). Ayrıca, 0 indeksleme, 1 indeksleme veya sekansın OEIS sayfasındaki "ofset" altında listelenen indeksleme gibi makul herhangi bir indekslemeyi kullanabilirsiniz. İlk endeks tarafından üretilen terim, OEIS girişinin ilk terimiyle eşleşmelidir.

İkinci seçenek, bir sayı giren ve dizinin ilk N terimini döndüren bir program veya işlev yazmaktır. Çıktının ilk şartları, OEIS girişinin ilk şartları olmalıdır (ilk birkaç terimi bırakamazsınız). Ardışık terimler, rakam içermeyen karakterlerin rastgele dizeleriyle sınırlandırılmalıdır, bu nedenle 0,1 1.2/3,5;8,11işe yarar ancak 011235811sayılmaz.

Üçüncü seçenek, sürekli bir sayı akışı veren bir program oluşturmaktır. İkinci seçeneğe benzer şekilde, ardışık terimler arasında sınırlayıcılar bulunmalıdır.

Cevabınız Stack Snippet ayrıştırmaya yardımcı olması için böyle bir başlık içermelidir :

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

Cevabınız, diziyi oluşturacak kodu ve herhangi bir torunun içermesi gereken ilk birkaç terimi içermelidir. Bu birkaç terimden önce, kelimenin tamterms: anlamıyla gelmesi gerekir; böylece denetleyici bunları ağaç diyagramının bir parçası olarak kullanabilir. Seçtiğiniz dizinin bir tanımını yazmanız da önerilir.

Gönderiniz bir derinlik 1 cevabıysa ve bu nedenle bir atası yoksa from A[number], başlığınızı eklemelisiniz .

İşte bir örnek cevap:

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

Zincir Gereksinimleri

Bu meydan okumayı daha adil hale getirmek için, sizin cevaplarınızı zincirleyebileceğiniz kısıtlamalar vardır. Bu kurallar çoğunlukla tek bir kişinin ağacın bütün bir dalını kendi başına oluşturmasını veya bir çok "kök" düğüme sahip olmasını engellemektir.

  • Kendine zincir veremezsin.
  • Cevaplarınızı iki tanesini doğrudan aynı ataya zincirleyemezsiniz.
  • Birden fazla "Seviye 1" cevabı yapamazsınız.

Ayrıca, ata N derinliğinde ise, istenen terim sayısından daha fazla kabul görse bile gönderinizin derinliği N + 1 olmalıdır.

puanlama

Bir kullanıcı olarak puanınız , tüm cevaplarınızın puanlarının toplamıdır . Tek bir cevabın skoru aşağıdaki formüle göre belirlenir:

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

Bu puanlama sistemi, kullanıcıları çok sayıda daha derin yanıt göndermeye teşvik etmelidir. Daha kısa cevaplar daha uzun cevaplarda tercih edilir, ancak derinlik çok daha büyük bir etkiye sahiptir.

Aşağıda, tüm cevapların bir ağaç şemasının yanı sıra bir lider tablosu oluşturan bir yığın pasajı bulunmaktadır. Martin Büttner ve d3noob'a bu kodun çoğunun kaynağı olduğu için teşekkür ediyorum . Sonuçların tamamını görmek için "Tam ekran" seçeneğini tıklamanız gerekir.

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
Biliyor musun, bence bu şimdiye kadar sorduğum gördüğüm en havalı codegolf.sx sorusu olabilir. Sadece havalı değil aynı zamanda bir arşiv olarak da faydalıdır.
Todd Lehman

3
OEIS çevrimiçi olduğu göz önüne alındığında, bir dizinin N terimini bir arama terimi olarak alır ve dizilerin çoğu için matematiği veya akçaağaç kodunu içerir, kodun bulunduğu en iyi puanlama girişini arayan bir meta girişi yazmak mümkün olacaktır. Buradaki herhangi bir girişin soyundan gelen OEIS’te ve yayınlanmıştır.
saat

2
Grafik üzerinde pasajı işaretlemenin bir yolunu, bir düğümün terminal olduğunu ortaya koyabilir miyim, yani OEIS'de daha fazla derinlikte kullanılmamış diziler yoktur?
Claudiu

1
Bu zorluğun devam etmesinin tek yolunun, kullanıcı adınızı vereceğiniz bir şey sağlamak olduğunu ve en yüksek derinlikten en alt düzeye kadar yapabileceğiniz OEIS sorunlarını listeleyeceğini düşünüyorum. Aksi halde gönderilecek bir sonraki sırayı bulmak çok uzun sürer.
Claudiu

1
SVG biraz fazla dar.
Hesap MakinesiFeline

Yanıtlar:


21

Parentetik, 150 bayt, derinlik 4, A000292, A000290'dan

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

Bir sonraki cevap aşağıdaki terimlerle eşleşmelidir:

0, 1, 4, 10

Bu, dört yüzlü sayıların dizisi, üçgen sayıların 3B genellemesi. Bunun için formül

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

Parantez , her şeyi tanımlamak için parantez kullanan Lisp benzeri bir dildir. Yukarıdaki, ()()()içeri giren nve çıkan bir fonksiyondur T(n). Gibi ara:

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

Açıklamalı

(
  define
  (() ()())

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

  (
    lambda
    (() ())

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

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

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

        n
        (() (()()))

        (
          +
          (() (()))

          n
          (() (()()))

          1
          ((()) ())
        )

        (
          +
          (() (()))

          n
          (() (()()))

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

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


Test call:

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

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

19
Bu dil dünyada ne? Lisp’in kötü bir versiyonu gibi.
Alex A.

10
@AlexA. Bu bir Lisp değil! Bu tam bir Konuşma Engelleme!
CJ Dennis

18

Krep Yığını, 118 bayt, derinlik 1, A000012

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

Bir sonraki cevap aşağıdaki terimlerle eşleşmelidir:

1

Bu, en küçük böleni basar n. Esolang wiki sayfasındaki Python yorumlayıcısı ile test edilmiştir . Tercüman ~, programın sonunu belirttikten sonraki satırda bekler , daha sonra STDIN girişi (yine de göz ardı edilir).

İlgili talimatlar:

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

Önceki cevap

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

Bu, sonsuz bir döngüde yazdırır. Ek talimatlar:

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

Başka talimatlar da var, ancak bu sayede Pancake Yığını, nümerik çıktı ve yığının sadece iki üst elemanına erişim eksikliği nedeniyle normalde kullanması çok zahmetli.

Ne yazık ki, bu programın ilk satırı Python yorumlayıcısındaki etiketlerle ilgili bir hatayı önlemek için gerekli görünüyor.


17

Python, 31 bayt, derinlik 4, A010060, A000045’ten

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

Bir sonraki cevap aşağıdaki terimlerle eşleşmelidir:

0, 1, 1, 0

Bu benim favorim ve bu Thue-Morse dizisi . Bunun en az iki tanımı var:

  • İkili açılımdakilerin paritesi n(yukarıda kullanılmış) ve
  • 0 ile başlayarak elde edilen dizi, daha sonra dizinin bit yönünde tamamlayıcısını tekrar tekrar ekleyerek (yani 0 -> 01 -> 0110 -> 01101001 -> ...)

Bu sekansla ilgili pek çok harika şeyden biri, eğer bir kaplumbağayı kapar ve yaparsak:

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

Bunu anlıyoruz:

görüntü tanımını buraya girin

Tanıdık görünmek?


15

MarioLANG, 265 bayt, derinlik 3, A006370'ten A016957

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

Bir sonraki cevap aşağıdaki terimlerle eşleşmelidir:

4, 10, 16

Dizi sadece aritmetik ilerlemedir 6n + 4.

MarioLANG , Süper Mario'ya dayanan ezoterik bir programlama dilidir. Hesaplamalar Brainfuck benzeri bir şekilde yapılır - artırabileceğiniz / azaltabileceğiniz bir hücre bandı vardır.

Burada ilgili BF benzeri komutlar:

+      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

Peki Mario nerede? Mario, sizin eğitim göstericiniz ve soldan başlıyor (nerede ;). Mario yerde kaldığı sürece talimatları yerine getirmeye devam ediyor =ve program düştüğünde program sonlanıyor.

Bunun için ilgili talimatlar:

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

Sonuçta, program bunu yapar:

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

Ruby tercümanı ile test edilmiştir. Dilin, Mario'nun düşerken karşıladığı talimatlara ne olduğu gibi tanımlanamayan bir davranış olduğuna dikkat edin, ben de bunlardan kaçınmaya çalıştım.


12

Brainfuck, 2 bayt, derinlik 2, A000030 A001477'den

,.

A000030 , negatif olmayan tam sayıların ilk basamağının dizisidir, bu nedenle bu ilk basamak karakterini okur ve geri yazar. Bir sonraki dizinin terimlerle başlaması gerekir:

0, 1

12
Bu şimdiye kadar gördüğüm en kısa kullanışlı Brainfuck programı olabilir.
Alex A.

9

Piet, 16 bayt, derinlik 3, A000035 A000030'dan

görüntü tanımını buraya girin

Bir sonraki cevap aşağıdaki terimlerle eşleşmelidir:

0, 1, 0

Bu Piet, yani "bayt" gerçekten kodlayıcı. İşte daha büyük bir mercan boyutunda:

görüntü tanımını buraya girin

Program basit bir şekilde okur nve nmodulo 2'yi çıkarır.


9

Mermer, 7 bayt, derinlik 3, A011760 A000027'den

Bir süredir bu site Marbelous cevabı gördü !

}0
<D++

Bir sonraki cevap terimlerle başlamalıdır:

1, 2, 3

Kodu, es1024'ün Stack Snippet yorumlayıcısında deneyebilirsiniz . Sonuçta komut satırı argümanı ile verilir ve "Çıkışı ondalık sayı olarak göster" seçeneğini seçmelisiniz. Aksi takdirde, sonuç teknik olarak da iyi olan bir bayt değeri olarak çıkarılır .

Sıra, "ABD'deki asansör düğmeleri" nin dizisidir, yani 13 dışındaki tüm pozitif tam sayılar. Marbelous'un 8 bit sayılarla sınırlı olduğunu unutmayın; ancak bildiğim kadarıyla, 256 kat civarında hiçbir yerde bina bulunmadığını unutmayın. :)

Marbelous, verinin kılavuzdan aşağıya düşen mermerler (bayt değerleri) biçiminde aktığı bir 2D dilidir. }0ilk komut satırı argümanı ile değiştirilir. <D13'ten küçük mermerler için boş bir hücre olarak işlev gören bir anahtardır ( Dbaz 36'dadır), böylece 1 ila 12 girişleri etkilenmeden geçer. Mermer 13'e eşit veya ondan büyükse, mermer sağa doğru saptırılır ve ++değeri 1 ile artırır. Her iki durumda da mermer daha sonra değerini düşüren tahtadan düşer.


8

Demiryolu , 56 bayt, derinlik 4, A003378'den A033547

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

Bir sonraki cevap aşağıdaki terimlerle eşleşmelidir:

0, 2, 6, 14

Program nSTDIN'den okuyor ve çıktılar n*(n^2+5)/3, ki bu 1940'lardan itibaren nükleer deniz hayvanı modelinin sihir rakamlarını tahmin ediyordu .

Ray, rayların etrafında temalı olan 2B bir dildir. Yukarıdaki kod, yeni hat @sayısını azaltmak için trenin yönünü tersine çeviren reflektörler kullanılarak golf oynamaktadır . İşte asılsız:

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

Rail'in sol üstte nasıl başladığına ve dikey olarak aşağıya doğru hareket etmeye başladığına dikkat edin.

Kullanılan yığın manipülasyon komutları:

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

Tren kavşaklarda dallanır >v<^, istifin üstü doğruysa sağa, aksi takdirde false bırakılır.


8

Yıldızlı, 22 bayt, derinlik 4, A008619, A000142'den

      + + +*,  +   **.

Bir sonraki cevap aşağıdaki terimlerle eşleşmelidir:

1, 1, 2, 2

Dizi, iki kez tekrarlanan pozitif tamsayılardan oluşur. Program STDIN'den bir sayıyla okur ve hesaplar 1 + floor(n/2).

Starry , Ruby'de ezoterik diller yapan bir kitabın parçası olan Ruby'de uygulanan ezoterik bir dildir. Her komut, birinden önceki boşluk sayısına göre belirlenir +*.,`'. Diğer tüm karakterler göz ardı edilir, bu yüzden yukarıdaki

      +
 + +*,
  +   *
*.

Hangi çok daha yıldızlı görünüyor! (sondaki boşluklara dikkat edin)

İlgili komutlar:

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

Önceki cevap, 53 bayt

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

Bu onun yerine ad infinitum dizisini oluşturur. Bazı ek komutlar:

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 bayt, derinlik 6, A107931'den A037965

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

Bu sadece dizilimin tanımını hesaplayan isimsiz bir fonksiyondur. Bir sonraki dizinin terimlerle başlaması gerekir:

0, 1, 4, 18, 80, 350

Yaprak düğümü (başka sekans yok)
CalculatorFeline

7

CJam, 34 bayt, derinlik 14, A237271'den A157271

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

Bir sonraki cevap terimlerle başlamalıdır:

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

ama daha önce yapılmayan bir şey kalmadı.

D(n)İlk n3 düz sayılar kümesi olsun : yani asal çarpanları alt kümesi olan tam sayılar {2, 3}. Let S(n)en büyük alt kümesi D(n)kendisinin formun herhangi bir alt içermiyor hangi {x, 2x}ya {y, 3y}. O zaman A157271 büyüklüğündedir S(n).


1
Güzel, buna bakıyordum ama açıklamalarının ne anlama geldiği tam olarak belli değildi. Seninki daha açık.
Claudiu

6

Golfscript, 3 bayt, derinlik 3, A00230'dan A000290

~2?

Bir sonraki cevap aşağıdaki terimlerle eşleşmelidir:

0, 1, 4

Bu sıra sadece kare sayılardır, program bir sayı alır ve karesini çıkarır.


6

Başlangıcı , 16 bayt, derinliği 1, A000211

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

Daha az belirgin bir başlangıç ​​numarasına sahip bir ağaç başlayacağımı düşündüm. Bu tanım ile genel bir Fibonacci dizisidir a(0) = 4, a(1) = 3, a(n) = a(n-1) + a(n-2) - 2. Sonuç olarak, bu çoğunlukla Prelude Fibonacci çözümümün basit bir uyarlaması . Yukarıdaki, sayıların sonsuzluk akışını basan bir programdır. Tek tek karakterler yerine sayıları çıkaran Python yorumlayıcısını varsayar .

Bir sonraki cevap terimlerle başlamalıdır:

4

6

Klip, 0 bayt, derinlik 2, A000027 A000012'den

Bir sayı verildiğinde n, nthnumarayı sırayla yazdırır.1, 2, 3, 4...

Bir sonraki cevap terimlerle başlamalıdır:

1, 2

5

J, 4 bayt, derinlik 4, A001563 A000290'dan

(*!)

Bir sonraki cevap aşağıdaki terimlerle eşleşmelidir:

0, 1, 4, 18

Bu sıra, faktörü ile çarpılan sayıdır. J ise (fg)xolan f(x,g(x))burada x*factorial(x).


Sen 2 byte için parantez dışarıda bırakın olabilir:*!
ɐɔıʇǝɥʇuʎs

@ ɐɔıʇǝɥʇuʎs Skorun ~ 1/128 kısmı için bırakamayacağımı söyleyen hiç kimseyle tartışmayacağım. :)
randomra

5

Mathematica, 48 bayt, derinlik 5, A004663'ten A104631

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

Bir sonraki cevap aşağıdaki terimlerle eşleşmelidir:

0, 1, 4, 18, 80

Uzun fonksiyon isimlerini engelleyen Mathematica, kesinlikle bu zorlukla karşı karşıya. Bu sadece x^(2n+1)genişlemenin katsayısıdır

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

5

Öğe , 13 bayt, derinlik 3, A000045 A000030'dan

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

A000045 , Fibonacci sayılarını temsil eder. Dizideki her terim, önceki iki terimin toplamıdır. Bu kayda değerdir, çünkü ardışık terimler arasındaki oran phi olarak da bilinen altın orana yaklaşır. Biraz ilginç olarak, OEIS girişi 0, 1ortak yerine başlar 1, 1. Bir sonraki cevap şartlara uymalıdır:

0, 1, 1

5

Prelude , 1 byte, derinlik 2, A000004 A001477'den

!

Bir sonraki cevap aşağıdaki terimlerle eşleşmelidir:

0, 0

Bu program ngirdi olarak kabul edilir, tamamen yok sayar ve sıfır sabitini çıkarır. NUMERIC_OUTPUT = TruePython yorumlayıcısında gerektirir .

Prelude ile ilgili güzel olan şey, yığının dibinde sonsuz bir sıfır kaynağı olması, bu yüzden ihtiyaç duyulan tek şey tek bir çıkış komutuydu.


4

Perl, 10 bayt, derinlik 1, A001477

İşleri başlatmak için, işte basit bir sekans.

print$_=<>

Bu, giriş numarasını yazdırarak negatif olmayan sayıları 0, 1, 2, 3 vb. Gösterir. Bir sonraki dizinin terimlerle başlaması gerekir:

0

4

GolfScript, 9 bayt, derinlik 4, A002275'ten A051682

~.9*7-*2/

Bir sonraki cevap aşağıdaki terimlerle eşleşmelidir:

0, 1, 11, 30

Bu sadece OEIS sayfasında bulunan uç-köşeli sayılar için formülü kullanır.


4

Ölü balık, 4 bayt, derinlik 2, A005563 A001477'den

isdo

Bu dizi, (n+1)^2-1bu programın tam olarak yaptığı şey olarak tanımlanmıştır . Deadfish girişi olmadığından, akümülatörün istenen giriş numarasında olduğunu varsayar. Bir sonraki cevap terimlerle başlamalıdır:

0, 3

4

APL, 13 bayt, derinlik 4, A000108, A000142'den

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

Katalanca sayılar! Endeksleme bunlar için sıfırda başlar. Bir sonraki cevap terimlerle başlamalıdır:

1, 1, 2, 5

4

GolfScript, 31 bayt, derinlik 11, A029030, A242681'den

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

Bir sonraki cevap aşağıdaki terimlerle eşleşmelidir:

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

ama yapamayacak: Bu ağacın bir yaprak. Bu dizi, 1, 2, 10 ve 11 değerlerinde bozuk para ile değişim yapmanın yollarının sayısıdır.


3
A258000: 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 7, 42 - codegolf.stackexchange.com
schnaader'de

4

Retina , 1 bayt, derinlik 3, A005533'ten A055642

.

Bir sonraki cevap terimlerle başlamalıdır:

1, 1, 1

Sanırım Retina'yı Değiştir modundan başka bir şeyde ilk defa kullanıyorum. Herhangi bir seçenek olmadan yalnızca tek bir dosya verilirse, Retina varsayılan olarak girişte verilen regex'in eşleşme sayısını sayan Eşleştirme modunu kabul eder. Bu regex .ve herhangi bir karakterle eşleşir. Bu nedenle, bu program A055642 olan girişin hane sayısını döndürür.


3

Klips , 24 bayt, derinlik 4, A004975'ten A049666

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

Bir sonraki cevap aşağıdaki terimlerle eşleşmelidir:

0, 1, 11, 122

Sıra sadece Fibonacci(5n)/5. Bir açıklama için örnekler sayfasına bakınız .


3

Klips, 37 bayt, derinlik 5, A000792'den A227327

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

Rotasyonlar ve yansımalar hariç, n bir üçgen ızgarası üzerinde iki nokta seçmenin olası yolları. Verilen örnek: n = 3 için 4 yol vardır:

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

Bir sonraki sıra aşağıdaki terimlerle başlamalıdır:

0, 1, 4, 10, 22

3

APL, 24 bayt, derinlik 6, A182512'den A025581

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

Dizisi A025581 dizisi olan ... dürüst olmak gerekirse Im oldukça emin değildi. Beni korkutuyor.

Endeksleme 0'dan başlar ve fonksiyon sadece sekansı tanımlayarak hesaplar.

Bir sonraki dizinin terimlerle başlaması gerekir:

0, 1, 0, 2, 1, 0

Tamsayı m'den 0'a düşürmek, ardından m + 1'den 0'a tamsayıları azaltmak vb. Bu yardımcı olabilir.
CalculatorFeline

3

> <>, 25 bayt, derinlik 2, A001333, A002522'den

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

Bunlar sürekli kesir yakınsaklarının sqrt (2) 'ye göstergeleridir. Kod, kullanıcının yığını döndürülmesi gereken yakınsak indeksiyle önceden doldurmasını gerektirir. Endeksleme 1 ile başlar. Bir sonraki cevap terimlerle başlamalıdır:

1, 1

3

J, 44 bayt, derinlik 10, A242681, A026233'den

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

Bir sonraki cevap terimlerle başlamalıdır:

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

Gündelik hayata daha yakın bir şey: " nstandart bir dart tahtası üzerinde iki dart kullanarak bir puanın elde edilebileceği yol sayısı ". Sadece sırasız puan çifti önemlidir. Başlangıç ​​ofseti, OEIS sayfasındaki gibi ikidir. Kullanımı:

f 2 => 1
f 72 => 12

3

R, 20 bayt, derinlik 11, A194964, A242681'den

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

Bir sonraki cevap aşağıdaki terimlerle eşleşmelidir:

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

Dizisi A194964 her n sonucu için verir 1+[n/sqrt(5)]burada ["kat" anlamına gelir. R fonksiyonu girişi stdin olarak alır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.