Sự phát triển của OEIS


56

Trong thử thách này, mục tiêu là tái tạo lại bách khoa toàn thư trực tuyến về chuỗi số nguyên một chuỗi một lần. Tương tự như Evolution of Hello World , mỗi câu trả lời phụ thuộc vào câu trả lời trước đó.

Theo thời gian, thử thách này sẽ tạo ra một "cây gia đình" của các chuỗi OEIS. Nó là đơn giản để thêm vào cây này.

  1. Tìm một câu trả lời trước đó, có thể ở bất kỳ độ sâu N nào của cây.
  2. Xác định N số đầu tiên được tạo bởi chuỗi câu trả lời đó.
  3. Tìm một chuỗi trong OEIS bắt đầu bằng các số đó và chưa được sử dụng trước đó.
  4. Viết chương trình để tạo chuỗi mới này mà bạn vừa tìm thấy.
  5. Gửi câu trả lời của bạn dưới dạng độ sâu N + 1

Vì mức độ câu trả lời của bạn ảnh hưởng đến việc ghi điểm, bạn nên luôn luôn thêm câu trả lời của mình lên cây ở mức sâu nhất có thể. Nếu bạn không thể đặt câu trả lời của mình ở bất cứ đâu trên cây, bạn có thể bắt đầu một nhánh mới của cây và đặt câu trả lời của bạn ở độ sâu 1.

Trả lời yêu cầu

Có một vài cách để xuất một chuỗi.

Tùy chọn đầu tiên là viết chương trình hoặc hàm nhập một số (từ STDIN hoặc làm đối số) và trả về số thứ N trong chuỗi đã chọn của bạn. Bạn có thể giả sử rằng chuỗi sẽ được xác định cho N và N và S_N là "có kích thước hợp lý" (vì vậy nó sẽ không gây ra tràn). Bạn cũng có thể sử dụng bất kỳ lập chỉ mục hợp lý nào, chẳng hạn như lập chỉ mục 0, lập chỉ mục 1 hoặc lập chỉ mục được liệt kê trong phần "bù" trên trang OEIS của chuỗi, không thành vấn đề. Thuật ngữ được tạo bởi chỉ mục đầu tiên phải khớp với thuật ngữ đầu tiên của mục nhập OEIS.

Tùy chọn thứ hai là viết một chương trình hoặc hàm nhập một số và trả về N điều khoản đầu tiên của chuỗi. Các điều khoản đầu tiên của đầu ra phải là các điều khoản đầu tiên của mục nhập OEIS (bạn không thể bỏ qua một vài điều khoản đầu tiên). Các thuật ngữ liên tiếp phải được phân định bằng các chuỗi ký tự không có chữ số tùy ý, do đó 0,1 1.2/3,5;8,11hoạt động nhưng 011235811không được tính.

Tùy chọn thứ ba là tạo ra một chương trình tạo ra một chuỗi số liên tục. Tương tự như tùy chọn thứ hai, phải có các dấu phân cách giữa các số hạng liên tiếp.

Câu trả lời của bạn nên chứa một tiêu đề như thế này để hỗ trợ phân tích cú pháp Stack Snippet:

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

Câu trả lời của bạn nên chứa mã để tạo chuỗi, cùng với một vài thuật ngữ đầu tiên mà bất kỳ hậu duệ nào cũng cần có. Một vài thuật ngữ nên được đi trước bởi từ chính xácterms: để bộ điều khiển có thể sử dụng chúng như một phần của sơ đồ cây. Bạn cũng nên viết một mô tả về trình tự bạn đã chọn.

Nếu bài đăng của bạn là câu trả lời sâu 1 và do đó không có tổ tiên, bạn chỉ cần bỏ qua phần from A[number]tiêu đề.

Đây là một câu trả lời ví dụ:

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

Yêu cầu xích

Để làm cho thách thức này công bằng hơn, có những hạn chế về câu trả lời mà bạn có thể xâu chuỗi câu trả lời của bạn. Các quy tắc này chủ yếu là để ngăn chặn một người tự tạo một nhánh của cây hoặc sở hữu nhiều nút "gốc".

  • Bạn không thể xâu chuỗi với chính mình.
  • Bạn không thể trực tiếp xâu chuỗi hai câu trả lời của mình cho cùng một tổ tiên.
  • Bạn không thể thực hiện nhiều hơn một câu trả lời "Cấp 1".

Ngoài ra, nếu tổ tiên có độ sâu N, bài đăng của bạn phải có độ sâu N + 1, ngay cả khi nhiều hơn số lượng điều khoản yêu cầu đồng ý.

Chấm điểm

Điểm của bạn với tư cách là người dùng là tổng điểm của tất cả các câu trả lời của bạn. Điểm của một câu trả lời được xác định theo công thức sau:

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

Hệ thống tính điểm này nên khuyến khích người dùng gửi một số lượng lớn câu trả lời sâu hơn. Câu trả lời ngắn hơn được ưa thích hơn câu trả lời dài hơn, nhưng độ sâu có ảnh hưởng lớn hơn nhiều.

Dưới đây là một đoạn ngăn xếp tạo ra bảng thành tích cũng như sơ đồ cây của tất cả các câu trả lời. Tôi muốn cảm ơn Martin Büttnerd3noob là nguồn cho rất nhiều mã này. Bạn nên nhấp vào "Toàn màn hình" để xem kết quả hoàn chỉnh.

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
Bạn biết đấy, tôi nghĩ rằng đây có thể chỉ là câu hỏi codegolf.sx thú vị nhất mà tôi từng thấy. Nó không chỉ tuyệt vời, mà còn thực sự hữu ích như một kho lưu trữ.
Todd Lehman

3
Do OEIS đang trực tuyến, lấy N thuật ngữ của một chuỗi làm thuật ngữ tìm kiếm và chứa mã toán học hoặc mã phong cho nhiều chuỗi, có thể viết một mục nhập meta tìm kiếm mục ghi điểm tốt nhất cho mã nào tồn tại trong OEIS là hậu duệ của bất kỳ mục nào được đưa ra ở đây và đăng nó.
abligh

2
Tôi có thể đề xuất một số cách đánh dấu trên biểu đồ mà đoạn trích tạo ra rằng một nút là thiết bị đầu cuối, tức là không có chuỗi nào không được sử dụng ở độ sâu lớn hơn có sẵn trên OEIS?
Claudiu

1
Tôi nghĩ cách duy nhất để duy trì thử thách này là cung cấp một cái gì đó nơi bạn cung cấp tên người dùng của mình và nó liệt kê các vấn đề OEIS bạn có thể làm, theo thứ tự từ sâu nhất đến thấp nhất. Nếu không, nó mất quá nhiều thời gian để tìm trình tự tiếp theo để đăng.
Claudiu

1
SVG hơi quá hẹp.
Máy

Câu trả lời:


21

Parenthetic, 150 byte, độ sâu 4, A000292 từ A000290

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

Câu trả lời tiếp theo phải phù hợp với các điều khoản sau:

0, 1, 4, 10

Đây là chuỗi các số tứ diện, tổng quát 3D của các số tam giác. Công thức cho việc này là

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

Parenthetic là một ngôn ngữ giống như Lisp, sử dụng dấu ngoặc đơn để định nghĩa mọi thứ. Trên đây là một chức năng ()()()có trong nvà đầu ra T(n). Gọi như:

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

Chú thích

(
  define
  (() ()())

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

  (
    lambda
    (() ())

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

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

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

        n
        (() (()()))

        (
          +
          (() (()))

          n
          (() (()()))

          1
          ((()) ())
        )

        (
          +
          (() (()))

          n
          (() (()()))

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

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


Test call:

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

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

19
Ngôn ngữ này là gì? Nó giống như một phiên bản trung bình của Lisp.
Alex A.

10
@AlexA. Đó không phải là Lisp! Đó là một Impediment phát ngôn đầy đủ!
CJ Dennis

18

Pancake Stack, 118 byte, độ sâu 1, A000012

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

Câu trả lời tiếp theo phải phù hợp với các điều khoản sau:

1

Điều này in ra ước số nhỏ nhất của n. Đã thử nghiệm với trình thông dịch Python trên trang wiki esolang . Trình thông dịch mong đợi một ~dòng trên để biểu thị kết thúc chương trình, sau đó đến đầu vào STDIN (dù sao sẽ bị bỏ qua).

Hướng dẫn liên quan:

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

Câu trả lời trước

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

Cái này in trong một vòng lặp vô hạn. Hướng dẫn bổ sung:

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

Có các hướng dẫn khác, nhưng ngay cả như vậy, Pancake Stack rất cồng kềnh khi sử dụng thông thường, nhờ thiếu đầu ra số và chỉ truy cập vào hai phần tử trên cùng của ngăn xếp.

Thật không may, dòng đầu tiên của chương trình này dường như là cần thiết để ngăn chặn lỗi liên quan đến các nhãn trong trình thông dịch Python.


17

Python, 31 byte, độ sâu 4, A010060 từ A000045

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

Câu trả lời tiếp theo phải phù hợp với các điều khoản sau:

0, 1, 1, 0

Đây là một mục yêu thích của tôi và đó là chuỗi Thue-Morse . Có ít nhất hai định nghĩa về nó:

  • Tính chẵn lẻ của các phần tử trong phần mở rộng nhị phân của n(được sử dụng ở trên) và
  • Trình tự thu được bằng cách bắt đầu bằng 0, sau đó liên tục nối bổ sung bitwise của chuỗi cho đến nay (nghĩa là 0 -> 01 -> 0110 -> 01101001 -> ...)

Một trong nhiều điều thú vị về chuỗi này là nếu chúng ta bắt một con rùa và làm:

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

chúng tôi nhận được điều này:

nhập mô tả hình ảnh ở đây

Nhìn có quen không?


15

MarioLANG, 265 byte, độ sâu 3, A016957 từ A006370

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

Câu trả lời tiếp theo phải phù hợp với các điều khoản sau:

4, 10, 16

Trình tự chỉ đơn thuần là sự tiến triển số học 6n + 4.

MarioLANG là một ngôn ngữ lập trình bí truyền dựa trên Super Mario. Các tính toán được thực hiện theo cách giống như Brainfuck - có một dải các ô mà bạn có thể tăng / giảm.

Các lệnh tương tự BF có liên quan ở đây là:

+      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

Vậy Mario ở đâu? Chà, Mario là con trỏ chỉ dẫn của bạn, và anh ta bắt đầu ở bên trái (ở đâu ;). Mario tiếp tục thực hiện các hướng dẫn miễn là anh ta ở trên mặt đất =, và khi anh ta rơi xuống thì chương trình chấm dứt.

Các hướng dẫn liên quan cho việc này là:

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

Tất cả trong tất cả, chương trình làm điều này:

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

Đã thử nghiệm với trình thông dịch Ruby. Lưu ý rằng ngôn ngữ có rất nhiều hành vi không xác định, chẳng hạn như những gì xảy ra với hướng dẫn Mario gặp khi anh ta ngã, vì vậy tôi đã cố gắng tránh bất kỳ hành vi nào.


12

Brainfuck, 2 byte, độ sâu 2, A000030 từ A001477

,.

A000030 là chuỗi các chữ số ban đầu của các số nguyên không âm, do đó, chỉ cần đọc ký tự chữ số đầu tiên và viết lại. Trình tự tiếp theo sẽ bắt đầu với các điều khoản:

0, 1

12
Đây có thể là chương trình Brainfuck hữu ích ngắn nhất tôi từng thấy.
Alex A.

9

Piet, 16 byte, độ sâu 3, A000035 từ A000030

nhập mô tả hình ảnh ở đây

Câu trả lời tiếp theo phải phù hợp với các điều khoản sau:

0, 1, 0

Đây là Piet, vì vậy "byte" thực sự là codel. Đây là một kích thước lớn hơn:

nhập mô tả hình ảnh ở đây

Chương trình chỉ cần đọc nvà xuất nmodulo 2.


9

Tuyệt vời, 7 byte, độ sâu 3, A011760 từ A000027

Đã được một thời gian kể từ khi trang web này đã thấy một câu trả lời đáng kinh ngạc !

}0
<D++

Câu trả lời tiếp theo nên bắt đầu bằng các điều khoản:

1, 2, 3

Bạn có thể thử mã trong trình thông dịch Stack Snippet của es1024 . Đặt được đưa ra thông qua đối số dòng lệnh và bạn nên chọn "Hiển thị đầu ra dưới dạng số thập phân". Mặt khác, kết quả sẽ là đầu ra dưới dạng giá trị byte, về mặt kỹ thuật cũng tốt .

Chuỗi này là chuỗi "nút thang máy ở Mỹ", tức là tất cả các số nguyên dương ngoại trừ 13. Lưu ý rằng Marbelous bị giới hạn ở số 8 bit, nhưng theo như tôi biết thì không có tòa nhà nào có gần 256 tầng. :)

Marbelous là một ngôn ngữ 2D trong đó dữ liệu chảy qua mã dưới dạng các viên bi (giá trị byte) rơi xuống lưới. }0được thay thế bằng đối số dòng lệnh đầu tiên. <Dlà một công tắc hoạt động như một ô trống để viên bi nhỏ hơn 13 ( Dnằm trong cơ sở 36), để các đầu vào 1 đến 12 đi qua không bị ảnh hưởng. Nếu viên bi bằng hoặc lớn hơn 13, viên bi bị lệch về bên phải và đi qua ++giá trị tăng thêm 1. Trong cả hai trường hợp, viên bi sẽ rơi ra khỏi bảng, in ra giá trị của nó.


8

Đường sắt , 56 byte, độ sâu 4, A033547 từ A002378

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

Câu trả lời tiếp theo phải phù hợp với các điều khoản sau:

0, 2, 6, 14

Chương trình đọc ntừ STDIN và các kết quả đầu ra n*(n^2+5)/3, đó là dự đoán về các con số ma thuật cho mô hình vỏ hạt nhân từ những năm 1940.

Rail là một ngôn ngữ 2D được theo chủ đề xung quanh đường ray xe lửa. Các mã trên được đánh gôn bằng cách sử dụng các @gương phản xạ đảo ngược hướng tàu, để giảm số lượng tuyến mới. Đây là vô căn cứ:

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

Lưu ý cách Rail bắt đầu ở phía trên bên trái và bắt đầu di chuyển theo chiều dọc xuống bên phải.

Các lệnh thao tác ngăn xếp được sử dụng là:

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

Các nhánh tàu tại các điểm giao nhau >v<^, rẽ phải nếu đỉnh của ngăn xếp là đúng, nếu không thì trái nếu sai.


8

Starry, 22 byte, độ sâu 4, A008619 từ A000142

      + + +*,  +   **.

Câu trả lời tiếp theo phải phù hợp với các điều khoản sau:

1, 1, 2, 2

Chuỗi bao gồm các số nguyên dương được lặp lại hai lần. Chương trình đọc một số từ STDIN và tính toán 1 + floor(n/2).

Starry là một ngôn ngữ bí truyền được triển khai trong Ruby, một phần của cuốn sách về ... tạo ra các ngôn ngữ bí truyền trong Ruby. Mỗi hướng dẫn được xác định bởi số lượng khoảng trắng trước một +*.,`'. Tất cả các ký tự khác được bỏ qua, vì vậy, ở trên là tương đương với

      +
 + +*,
  +   *
*.

Trông có vẻ nhiều sao! (lưu ý các dấu cách)

Các lệnh có liên quan là:

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

Câu trả lời trước, 53 byte

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

Điều này tạo ra chuỗi quảng cáo vô hạn thay thế. Một số lệnh bổ sung là:

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

Mathicala, 20 byte, độ sâu 6, A037965 từ A104631

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

Đây là một hàm không tên mà chỉ đơn giản là tính toán định nghĩa của chuỗi. Trình tự tiếp theo sẽ bắt đầu với các điều khoản:

0, 1, 4, 18, 80, 350

Nút lá (không có chuỗi khác)
CalculatorFeline

7

CJam, 34 byte, độ sâu 14, A157271 từ A238263

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

Câu trả lời tiếp theo nên bắt đầu bằng các điều khoản:

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

nhưng không có bất kỳ trái nào chưa được thực hiện.

Đặt D(n)tập hợp các số có n3 số đầu tiên : đó là các số nguyên có các thừa số nguyên tố là tập con của {2, 3}. Hãy S(n)là tập hợp con lớn nhất trong D(n)đó bản thân nó không chứa bất kỳ tập hợp con nào của biểu mẫu {x, 2x}hoặc {y, 3y}. Khi đó A157271 là kích thước của S(n).


1
Thật tuyệt, tôi đã xem cái này nhưng không rõ lời giải thích của họ là gì. Của bạn rõ ràng hơn nhiều.
Claudiu

6

Golfscript, 3 byte, độ sâu 3, A000290 từ A000030

~2?

Câu trả lời tiếp theo phải phù hợp với các điều khoản sau:

0, 1, 4

Chuỗi này chỉ đơn giản là các số vuông, vì vậy chương trình lấy một số và xuất ra hình vuông của nó.


6

Mở đầu , 16 byte, độ sâu 1, A000211

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

Tôi nghĩ tôi sẽ bắt đầu một cái cây với số ban đầu ít rõ ràng hơn. Đây là một dãy Fibonacci tổng quát với định nghĩa a(0) = 4, a(1) = 3, a(n) = a(n-1) + a(n-2) - 2. Do đó, đây chủ yếu là một sự điều chỉnh đơn giản cho giải pháp Prelude Fibonacci của tôi . Trên đây là một chương trình in một dòng vô số của các con số. Nó giả sử trình thông dịch Python xuất ra các số thay vì các ký tự riêng lẻ.

Câu trả lời tiếp theo nên bắt đầu bằng các điều khoản:

4

6

Clip, 0 byte, độ sâu 2, A000027 từ A000012

Cho một số n, in nthsố trong chuỗi1, 2, 3, 4...

Câu trả lời tiếp theo nên bắt đầu bằng các điều khoản:

1, 2

5

J, 4 byte, độ sâu 4, A001563 từ A000290

(*!)

Câu trả lời tiếp theo phải phù hợp với các điều khoản sau:

0, 1, 4, 18

Chuỗi này là số nhân với giai thừa của nó. Trong J (fg)xf(x,g(x))đây x*factorial(x).


Bạn có thể bỏ qua các dấu ngoặc đơn cho 2 byte:*!
ɐɔıʇǝɥʇuʎs

@ Tôi sẽ không tranh luận với bất cứ ai nói rằng tôi không thể để họ ra ngoài với tỷ lệ ~ 1/12 điểm. :)
ngẫu nhiên

5

Mathicala, 48 byte, độ sâu 5, A104631 từ A001563

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

Câu trả lời tiếp theo phải phù hợp với các điều khoản sau:

0, 1, 4, 18, 80

Chặn các tên hàm dài, Mathicala hoàn toàn đá ở thử thách này. Điều này chỉ đơn giản là hệ số x^(2n+1)trong việc mở rộng

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

5

Phần tử , 13 byte, độ sâu 3, A000045 từ A000030

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

A000045 đại diện cho các số Fibonacci. Mỗi thuật ngữ trong chuỗi là tổng của hai thuật ngữ trước. Điều đáng chú ý là tỷ lệ giữa các thuật ngữ liên tiếp tiếp cận tỷ lệ vàng, còn được gọi là phi. Điều thú vị là, mục OEIS bắt đầu bằng 0, 1thay vì thông thường 1, 1. Câu trả lời tiếp theo phải phù hợp với các điều khoản:

0, 1, 1

5

Mở đầu , 1 byte, độ sâu 2, A000004 từ A001477

!

Câu trả lời tiếp theo phải phù hợp với các điều khoản sau:

0, 0

Chương trình này nhận nlàm đầu vào, bỏ qua hoàn toàn và xuất ra hằng số không. Nó đòi hỏi NUMERIC_OUTPUT = Truetrong trình thông dịch Python.

Điều thú vị về Prelude là nó có một nguồn cung cấp số 0 vô hạn ở dưới cùng của ngăn xếp, vì vậy tất cả những gì cần thiết là một lệnh đầu ra duy nhất.


4

Perl, 10 byte, độ sâu 1, A001477

Để bắt đầu, đây là một chuỗi đơn giản.

print$_=<>

Điều này thể hiện các số không âm 0, 1, 2, 3, v.v. bằng cách in số đầu vào. Trình tự tiếp theo sẽ bắt đầu với các điều khoản:

0

4

GolfScript, 9 byte, độ sâu 4, A051682 từ A002275

~.9*7-*2/

Câu trả lời tiếp theo phải phù hợp với các điều khoản sau:

0, 1, 11, 30

Điều này chỉ đơn giản là sử dụng công thức cho các số hendecagonal được tìm thấy trên trang OEIS.


4

Deadfish, 4 byte, độ sâu 2, A005563 từ A001477

isdo

Trình tự này được định nghĩa là (n+1)^2-1, đó chính xác là những gì chương trình này làm. Vì Deadfish không có đầu vào, nó giả định rằng bộ tích lũy ở số đầu vào mong muốn. Câu trả lời tiếp theo nên bắt đầu bằng các điều khoản:

0, 3

4

APL, 13 byte, độ sâu 4, A000108 từ A000142

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

Số Catalan! Lập chỉ mục bắt đầu từ 0 cho những điều này. Câu trả lời tiếp theo nên bắt đầu bằng các điều khoản:

1, 1, 2, 5

4

GolfScript, 31 byte, độ sâu 11, A029030 từ A242681

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

Câu trả lời tiếp theo phải phù hợp với các điều khoản sau:

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

nhưng nó sẽ không thể: đây là một chiếc lá của cây. Chuỗi này là số cách đưa ra thay đổi với các đồng tiền có giá trị 1, 2, 10 và 11.


3
A258000: 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 7, 42 - Một số chuỗi kỳ lạ mà họ yêu cầu tại codegolf.stackexchange.com
schnaader

4

Võng mạc , 1 byte, độ sâu 3, A055642 từ A001333

.

Câu trả lời tiếp theo nên bắt đầu bằng các điều khoản:

1, 1, 1

Tôi nghĩ rằng đây là lần đầu tiên tôi sử dụng Retina trong một cái gì đó khác ngoài chế độ Thay thế. Nếu chỉ có một tệp duy nhất được cung cấp mà không có bất kỳ tùy chọn nào, Retina giả định chế độ Kết hợp, theo mặc định sẽ đếm số lượng kết quả khớp của biểu thức đã cho trong đầu vào. Regex này là .và phù hợp với bất kỳ nhân vật. Do đó, chương trình này trả về số chữ số của đầu vào là A055642.


3

Clip , 24 byte, độ sâu 4, A049666 từ A002275

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

Câu trả lời tiếp theo phải phù hợp với các điều khoản sau:

0, 1, 11, 122

Trình tự chỉ là Fibonacci(5n)/5. Xem trang ví dụ để được giải thích.


3

Clip, 37 byte, độ sâu 5, A227327 từ A000292

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

Các cách có thể để chọn hai điểm trên lưới hình tam giác bên n, không bao gồm các phép quay và phản xạ. Ví dụ được đưa ra là: với n = 3, có 4 cách:

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

Trình tự tiếp theo phải bắt đầu với các điều khoản sau:

0, 1, 4, 10, 22

3

APL, 24 byte, độ sâu 6, A025581 từ A182712

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

Trình tự A025581 là trình tự của ... Tôi không chắc chắn trung thực. Việc đó làm tôi sợ.

Lập chỉ mục bắt đầu từ 0 và hàm chỉ tính toán chuỗi theo định nghĩa.

Trình tự tiếp theo sẽ bắt đầu với các điều khoản:

0, 1, 0, 2, 1, 0

Giảm số nguyên m xuống 0 sau đó giảm số nguyên m + 1 xuống 0, v.v ... Điều đó có thể giúp ích.
Máy

3

> <>, 25 byte, độ sâu 2, A001333 từ A002522

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

Đây là các tử số của phần tiếp tục hội tụ đến sqrt (2). Mã cần người dùng chuẩn bị trước ngăn xếp với chỉ mục của hội tụ sẽ được trả về. Lập chỉ mục bắt đầu từ 1. Câu trả lời tiếp theo nên bắt đầu bằng các thuật ngữ:

1, 1

3

J, 44 byte, độ sâu 10, A242681 từ A026233

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

Câu trả lời tiếp theo nên bắt đầu bằng các điều khoản:

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

Một cái gì đó gần gũi hơn với cuộc sống hàng ngày: "số cách mà một số điểm ncó thể đạt được bằng cách sử dụng hai phi tiêu trên một phi tiêu tiêu chuẩn". Chỉ có các cặp điểm số không có thứ tự vấn đề. Bắt đầu bù là hai như trong trang OEIS. Sử dụng:

f 2 => 1
f 72 => 12

3

R, 20 byte, độ sâu 11, A194964 từ A242681

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

Câu trả lời tiếp theo phải phù hợp với các điều khoản sau:

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

Trình tự A194964 cho cho mỗi n là kết quả của 1+[n/sqrt(5)]nơi [có nghĩa là "sàn". Hàm R nhận đầu vào là stdin.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.