Эволюция OEIS


56

В этой задаче цель состоит в том, чтобы воссоздать онлайн -энциклопедию целочисленных последовательностей по одной последовательности за раз. Подобно Эволюции Hello World , каждый ответ зависит от предыдущего ответа.

Со временем эта задача создаст «семейное древо» последовательностей OEIS. Это просто добавить к этому дереву.

  1. Найти предыдущий ответ, который может быть на любой глубине N дерева.
  2. Определите первые N чисел, сгенерированных последовательностью этого ответа.
  3. Найдите в OEIS последовательность, начинающуюся с тех же номеров и ранее не использовавшуюся.
  4. Напишите программу для генерации этой новой последовательности, которую вы только что нашли.
  5. Отправьте свой ответ как глубину N + 1

Так как уровень вашего ответа влияет на оценку, вы всегда должны добавлять свой ответ в дерево на как можно более глубоком уровне. Если вы не можете разместить свой ответ где-нибудь на дереве, вы можете начать новую ветвь дерева и поставить свой ответ как глубина 1.

Требования к ответу

Есть несколько способов вывести последовательность.

Первый вариант - написать программу или функцию, которая вводит число (из STDIN или в качестве аргумента) и возвращает N-е число в выбранной вами последовательности. Вы можете предположить, что последовательность будет определена для N и что N и S_N имеют «разумный размер» (поэтому это не вызовет переполнения). Вы также можете использовать любое разумное индексирование, такое как индексирование 0, индексирование 1 или индексирование, указанное в разделе «смещение» на странице OEIS последовательности, это не имеет значения. Термин, созданный первым индексом, должен соответствовать первому члену записи OEIS.

Второй вариант - написать программу или функцию, которая вводит число и возвращает первые N членов последовательности. Первые условия вывода должны быть первыми условиями записи OEIS (вы не можете пропустить первые несколько терминов). Последовательные термины должны быть разделены произвольными строками нецифровых символов, поэтому 0,1 1.2/3,5;8,11работает, но 011235811не считается.

Третий вариант - создать программу, которая выводит непрерывный поток чисел. Как и во втором варианте, между последовательными терминами должны быть разделители.

Ваш ответ должен содержать такой заголовок, чтобы облегчить синтаксический анализ стека:

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

Ваш ответ должен содержать код для генерации последовательности, а также первые несколько терминов, которые должны будут содержать любые потомки. Этим нескольким терминам должно предшествовать точное слово,terms: чтобы контроллер мог использовать их как часть древовидной диаграммы. Также рекомендуется написать описание выбранной вами последовательности.

Если ваш пост является ответом глубины 1 и, следовательно, не имеет предка, вы должны просто опустить его from A[number]в заголовке.

Вот пример ответа:

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

Требования к цепочке

Чтобы сделать этот вызов более справедливым, существуют ограничения, по которым вы можете связать свои ответы. Эти правила в основном запрещают одному человеку создавать целую ветвь дерева самостоятельно или иметь множество «корневых» узлов.

  • Вы не можете цепляться к себе.
  • Вы не можете напрямую связать два своих ответа с одним и тем же предком.
  • Вы не можете сделать более одного ответа «Уровень 1».

Кроме того, если предок был глубины N, ваш пост должен иметь глубину N + 1, даже если согласен более чем необходимое количество терминов.

счет

Ваша оценка как пользователя - это сумма оценок всех ваших ответов. Оценка одного ответа определяется по следующей формуле:

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

Эта система подсчета очков должна побуждать пользователей представлять большое количество более глубоких ответов. Короткие ответы предпочтительнее длинных, но глубина оказывает гораздо большее влияние.

Ниже приведен фрагмент стека, который генерирует таблицу лидеров, а также древовидную схему всех ответов. Я хотел бы поблагодарить Мартина Бюттнера и d3noob в качестве источников для большей части этого кода. Вы должны нажать «Полный экран», чтобы увидеть полные результаты.

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
Знаете, я думаю, что это может быть просто самый крутой вопрос codegolf.sx, который я когда-либо видел. Это не просто круто, но на самом деле полезно как архив.
Тодд Леман

3
Учитывая, что OEIS находится в сети, принимает N терминов последовательности в качестве поискового термина и содержит математический код или код клена для многих последовательностей, было бы возможно написать мета-запись, которая искала запись с наилучшей оценкой, для которой существует код. в OEIS, который является потомком любой данной записи здесь и опубликовал ее.
позднее

2
Могу ли я порекомендовать какой-либо способ пометки на графике, который генерирует фрагмент, что узел является терминальным, то есть в OEIS нет доступных неиспользуемых последовательностей большей глубины?
Клаудиу

1
Я думаю, что единственный способ решить эту проблему - это предоставить что-то, где вы даете свое имя пользователя, и в нем перечислены проблемы OEIS, которые вы можете сделать, в порядке от самой большой глубины до самой низкой. В противном случае это займет слишком много времени, чтобы найти следующую последовательность для публикации.
Клавдиу

1
SVG немного слишком узок.
CalculatorFeline

Ответы:


21

В скобках, 150 байт, глубина 4, A000292 от A000290

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

Следующий ответ должен соответствовать следующим условиям:

0, 1, 4, 10

Это последовательность тетраэдрических чисел, трехмерное обобщение треугольных чисел. Формула для этого

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

Parenthetic - это Lisp-подобный язык, который использует скобки для определения всего. Выше приведена функция, ()()()которая принимает nи выводит T(n). Звоните как:

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

аннотированный

(
  define
  (() ()())

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

  (
    lambda
    (() ())

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

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

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

        n
        (() (()()))

        (
          +
          (() (()))

          n
          (() (()()))

          1
          ((()) ())
        )

        (
          +
          (() (()))

          n
          (() (()()))

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

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


Test call:

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

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

19
Что в мире этот язык? Это похоже на более подлую версию Lisp.
Алекс А.

10
@AlexA. Это не Лисп! Это полноценное препятствие для речи!
CJ Деннис

18

Стек для блинов, 118 байт, глубина 1, A000012

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

Следующий ответ должен соответствовать следующим условиям:

1

Это печатает наименьший делитель n. Протестировано с интерпретатором Python на вики-странице esolang . Интерпретатор ожидает, что ~в строке после будет обозначаться конец программы, после которого поступает ввод STDIN (который в любом случае будет игнорироваться).

Соответствующие инструкции:

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

Предыдущий ответ

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

Этот печатает в бесконечном цикле. Дополнительные инструкции:

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

Существуют и другие инструкции, но даже в этом случае Pancake Stack очень громоздкий в использовании, из-за отсутствия числового вывода и доступа только к двум верхним элементам стека.

К сожалению, первая строка этой программы кажется необходимой для предотвращения ошибки, связанной с метками в интерпретаторе Python.


17

Python, 31 байт, глубина 4, A010060 от A000045

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

Следующий ответ должен соответствовать следующим условиям:

0, 1, 1, 0

Это мой любимый, и это последовательность Туэ-Морса . Есть как минимум два определения этого:

  • Соотношение единиц в двоичном разложении n(используется выше), и
  • Последовательность, полученная начиная с 0, затем многократно добавляя побитовое дополнение последовательности (т.е. 0 -> 01 -> 0110 -> 01101001 -> ...)

Одна из многих интересных вещей в этой последовательности - если мы возьмем черепаху и сделаем:

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

мы получаем это:

введите описание изображения здесь

Выглядит знакомо?


15

MarioLANG, 265 байтов, глубина 3, A016957 от A006370

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

Следующий ответ должен соответствовать следующим условиям:

4, 10, 16

Последовательность - это просто арифметическая прогрессия 6n + 4.

MarioLANG - это эзотерический язык программирования, основанный на Super Mario. Расчеты выполняются в стиле Brainfuck - есть лента ячеек, которую вы можете увеличивать / уменьшать.

Соответствующие BF-подобные команды здесь:

+      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

Так где же Марио? Ну, Марио - это указатель вашей инструкции, и он начинает слева (где ;находится). Марио продолжает выполнять инструкции, пока он на земле =, и когда он падает, программа завершается.

Соответствующие инструкции для этого:

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

В общем, программа делает это:

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. Обратите внимание, что в языке много неопределенного поведения, например, что происходит с инструкциями, с которыми сталкивается Марио при падении, поэтому я старался избегать всего этого.


12

Brainfuck, 2 байта, глубина 2, A000030 от A001477

,.

A000030 - это последовательность начальных цифр неотрицательных целых чисел, поэтому она просто читает первый символ цифры и записывает его обратно. Следующая последовательность должна начинаться с терминов:

0, 1

12
Это может быть самая короткая полезная программа Brainfuck, которую я когда-либо видел.
Алекс А.

9

Piet, 16 байтов, глубина 3, A000035 от A000030

введите описание изображения здесь

Следующий ответ должен соответствовать следующим условиям:

0, 1, 0

Это Пит, поэтому «байты» - это действительно кодеки. Здесь это в большем размере кодера:

введите описание изображения здесь

Программа просто читает nи выводит nпо модулю 2.


9

Marbelous, 7 байтов, глубина 3, A011760 от A000027

Прошло много времени с тех пор, как этот сайт видел Marbelous ответ!

}0
<D++

Следующий ответ должен начинаться с терминов:

1, 2, 3

Вы можете попробовать код в интерпретаторе Stack Snippet в es1024 . Ввод задается через аргумент командной строки, и вы должны выбрать «Отображать вывод в виде десятичных чисел». В противном случае результат будет выводиться в виде байтового значения, что технически тоже хорошо .

Последовательность - это последовательность «кнопок лифта в США», то есть всех положительных целых чисел, кроме 13. Обратите внимание, что Marbelous ограничен 8-битными числами, но, насколько я знаю, нет зданий с примерно 256 этажами. :)

Marbelous - это двумерный язык, в котором данные проходят через код в виде шариков (байтовых значений), падающих по сетке. }0получает замену на первый аргумент командной строки. <Dявляется переключателем, который действует как пустая ячейка для шариков меньше 13 ( Dнаходится в базе 36), так что входы с 1 по 12 проходят через незатронутые. Если мрамор равен или больше 13, мрамор отклоняется вправо и проходит через него, ++что увеличивает значение на 1. В любом случае мрамор затем падает с доски, что печатает его значение.


8

Рельс , 56 байтов, глубина 4, A033547 от A002378

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

Следующий ответ должен соответствовать следующим условиям:

0, 2, 6, 14

Программа читает nиз STDIN и выводит n*(n^2+5)/3, что было предположением о магических числах для модели ядерной оболочки 1940-х годов.

Железнодорожный транспорт - это двумерный язык, тематически ориентированный на железнодорожные пути. Приведенный выше код выполняется с использованием @отражателей, которые изменяют направление движения поезда, чтобы уменьшить количество новых строк. Вот это не разгромлено:

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

Обратите внимание, как Rail начинается сверху слева и начинает двигаться вертикально вниз справа.

Используемые команды управления стеком:

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

Поезд разветвляется в развязках >v<^, поворачивая направо, если вершина стека верна, в противном случае оставляется, если ложь


8

Звездный, 22 байта, глубина 4, A008619 от A000142

      + + +*,  +   **.

Следующий ответ должен соответствовать следующим условиям:

1, 1, 2, 2

Последовательность состоит из натуральных чисел, повторенных дважды. Программа считывает число из STDIN и рассчитывает 1 + floor(n/2).

Starry - это эзотерический язык, реализованный в Ruby, который был частью книги о ... создании эзотерических языков в Ruby. Каждая инструкция определяется количеством пробелов перед одним из +*.,`'. Все остальные символы игнорируются, поэтому приведенное выше эквивалентно

      +
 + +*,
  +   *
*.

который выглядит намного более звездным! (обратите внимание на пробелы)

Соответствующие команды:

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

Предыдущий ответ, 53 байта

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

Это создает последовательность до бесконечности вместо этого. Некоторые дополнительные команды:

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 байтов, глубина 6, A037965 из A104631

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

Это безымянная функция, которая просто вычисляет определение последовательности. Следующая последовательность должна начинаться с терминов:

0, 1, 4, 18, 80, 350

Конечный узел (без других последовательностей)
CalculatorFeline

7

CJam, 34 байта, глубина 14, A157271 из A238263

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

Следующий ответ должен начинаться с терминов:

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

но не осталось ничего, что еще не было сделано.

Позвольте D(n)быть набор первых n3-гладких чисел: это целые числа, чьи простые факторы являются подмножеством {2, 3}. Позвольте S(n)быть наибольшее подмножество D(n)которого не содержит ни одного подмножества формы {x, 2x}или {y, 3y}. Тогда A157271 это размер S(n).


1
Ах, хорошо, я смотрел на это, но не совсем ясно, что означало их объяснение. Ваш намного понятнее.
Клавдиу

6

Golfscript, 3 байта, глубина 3, A000290 от A000030

~2?

Следующий ответ должен соответствовать следующим условиям:

0, 1, 4

Эта последовательность представляет собой просто квадратные числа, поэтому программа берет число и выводит его квадрат.


6

Прелюдия , 16 байтов, глубина 1, A000211

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

Я думал, что я начну дерево с менее очевидного начального числа. Это обобщенная последовательность Фибоначчи с определением a(0) = 4, a(1) = 3, a(n) = a(n-1) + a(n-2) - 2. Следовательно, это в основном простая адаптация моего решения Прелюдии Фибоначчи . Выше приведена программа, которая печатает бесконечный поток чисел. Предполагается, что интерпретатор Python выводит числа вместо отдельных символов.

Следующий ответ должен начинаться с терминов:

4

6

Клип, 0 байтов, глубина 2, A000027 от A000012

Учитывая число n, печатает nthчисло в последовательности1, 2, 3, 4...

Следующий ответ должен начинаться с терминов:

1, 2

5

J, 4 байта, глубина 4, A001563 от A000290

(*!)

Следующий ответ должен соответствовать следующим условиям:

0, 1, 4, 18

Эта последовательность является числом, умноженным на его факториал. В J (fg)xнаходится f(x,g(x))здесь x*factorial(x).


Вы можете оставить скобки на 2 байта:*!
Aprıʇǝɥʇuʎs

@ ɐɔıʇǝɥʇuʎs Я не собираюсь спорить с кем-то, кто говорит, что я не могу оставить их на ~ 1/128 балла. :)
randomra

5

Mathematica, 48 байтов, глубина 5, A104631 от A001563

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

Следующий ответ должен соответствовать следующим условиям:

0, 1, 4, 18, 80

За исключением длинных имен функций, Mathematica совершенно не справляется с этой задачей. Этот просто коэффициент x^(2n+1)в расширении

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

5

Элемент , 13 байтов, глубина 3, A000045 от A000030

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

A000045 представляет числа Фибоначчи. Каждый член в последовательности является суммой двух предыдущих. Это примечательно, потому что соотношение между последовательными слагаемыми приближается к золотому сечению, также известному как фи. Несколько интересно, что запись OEIS начинается с 0, 1общего 1, 1. Следующий ответ должен соответствовать условиям:

0, 1, 1

5

Прелюдия , 1 байт, глубина 2, A000004 от A001477

!

Следующий ответ должен соответствовать следующим условиям:

0, 0

Эта программа принимает в nкачестве входных данных, полностью игнорирует ее и выводит нулевую константу. Требуется NUMERIC_OUTPUT = Trueв интерпретаторе Python.

Приятно, что в Prelude есть бесконечный запас нулей в нижней части стека, поэтому все, что было нужно, - это одна команда вывода.


4

Perl, 10 байт, глубина 1, A001477

Чтобы начать, вот простая последовательность.

print$_=<>

Это представляет неотрицательные числа 0, 1, 2, 3 и т. Д. Путем печати введенного номера. Следующая последовательность должна начинаться с терминов:

0

4

GolfScript, 9 байтов, глубина 4, A051682 от A002275

~.9*7-*2/

Следующий ответ должен соответствовать следующим условиям:

0, 1, 11, 30

При этом просто используется формула для шестигранных чисел, найденная на странице OEIS.


4

Deadfish, 4 байта, глубина 2, A005563 от A001477

isdo

Эта последовательность определяется как (n+1)^2-1, что именно и делает эта программа. Поскольку Deadfish не имеет ввода, он предполагает, что аккумулятор находится на желаемом номере входа. Следующий ответ должен начинаться с терминов:

0, 3

4

APL, 13 байтов, глубина 4, A000108 от A000142

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

Каталонские номера! Индексирование начинается с нуля для них. Следующий ответ должен начинаться с терминов:

1, 1, 2, 5

4

GolfScript, 31 байт, глубина 11, A029030 из A242681

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

Следующий ответ должен соответствовать следующим условиям:

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

но он не сможет: это лист дерева. Эта последовательность представляет собой количество способов обмена с монетами достоинством 1, 2, 10 и 11.


3
A258000: 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 7, 42 - какая-то странная последовательность, которую они просили на codegolf.stackexchange.com
schnaader

4

Сетчатка , 1 байт, глубина 3, A055642 от A001333

.

Следующий ответ должен начинаться с терминов:

1, 1, 1

Я думаю, что это первый раз, когда я использовал Retina для чего-то другого, кроме режима замены. Если указан только один файл без каких-либо параметров, Retina принимает режим соответствия, который по умолчанию подсчитывает количество совпадений данного регулярного выражения во входных данных. Это регулярное выражение .и соответствует любому символу. Таким образом, эта программа возвращает количество цифр на входе, которое является A055642.


3

Клип , 24 байта, глубина 4, A049666 от A002275

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

Следующий ответ должен соответствовать следующим условиям:

0, 1, 11, 122

Последовательность просто Fibonacci(5n)/5. Смотрите страницу примеров для объяснения.


3

Клип, 37 байтов, глубина 5, A227327 от A000292

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

Возможные способы выбора двух точек на треугольной сетке со стороны n, исключая повороты и отражения. Приведенный пример: для n = 3 есть 4 способа:

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

Следующая последовательность должна начинаться со следующих терминов:

0, 1, 4, 10, 22

3

APL, 24 байта, глубина 6, A025581 от A182712

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

Последовательность A025581 является последовательностью ... Я не совсем уверен, чтобы быть честным. Это пугает меня.

Индексирование начинается с 0, и функция просто вычисляет последовательность по определению.

Следующая последовательность должна начинаться с терминов:

0, 1, 0, 2, 1, 0

Уменьшение целых чисел от m до 0 с последующим уменьшением целых чисел от m + 1 до 0 и т. Д. Это может помочь.
CalculatorFeline

3

> <>, 25 байтов, глубина 2, A001333 из A002522

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

Это числители непрерывных дробей, сходящихся к sqrt (2). Код требует, чтобы пользователь предварительно заполнил стек индексом конвергента, который должен быть возвращен. Индексирование начинается с 1. Следующий ответ должен начинаться с терминов:

1, 1

3

J, 44 байта, глубина 10, A242681 от A026233

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

Следующий ответ должен начинаться с терминов:

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

Что-то ближе к повседневной жизни: «количество способов, с помощью которых nможно получить очки, используя два дротика на стандартном дартс». Только неупорядоченная пара очков имеет значение. Начальное смещение равно двум, как на странице OEIS. Использование:

f 2 => 1
f 72 => 12

3

R, 20 байтов, глубина 11, A194964 из A242681

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

Следующий ответ должен соответствовать следующим условиям:

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

Последовательность A194964 дает для каждого n результат, 1+[n/sqrt(5)]где [означает «этаж». Функция R принимает ввод как стандартный ввод.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.