Еволюція 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, який є нащадком будь-якого даного запису тут і розмістив його.
abligh

2
Чи можу я порекомендувати якийсь спосіб маркування на графіку, фрагмент генерує те, що вузол є термінальним, тобто в OEIS немає невикористаних послідовностей більшої глибини?
Клавдіу

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

1
SVG трохи надто вузький.
CalculatorFeline

Відповіді:


21

Парентез, 150 байт, глибина 4, A000292 від A000290

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

Наступна відповідь повинна відповідати наступним умовам:

0, 1, 4, 10

Це послідовність тетраедричних чисел, 3D узагальнення трикутних чисел. Формула для цього є

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

Parenthetic - мова, схожа на Ліппа, яка використовує дужки для визначення всього. Вищенаведене - це функція, ()()()яка приймає nі видає T(n). Телефонуйте як:

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

Повідомлення

(
  define
  (() ()())

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

  (
    lambda
    (() ())

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

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

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

        n
        (() (()()))

        (
          +
          (() (()))

          n
          (() (()()))

          1
          ((()) ())
        )

        (
          +
          (() (()))

          n
          (() (()()))

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

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


Test call:

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

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

19
Яка у світі ця мова? Це як мізерна версія Lisp.
Алекс А.

10
@AlexA. Це не Лисп! Це повноцінний мовленнєвий перешкод!
CJ Dennis

18

Млинець стек, 118 байт, глибина 1, A000012

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

Наступна відповідь повинна відповідати наступним умовам:

1

Це друкує найменший дільник n. Тестовано з інтерпретатором Python на сторінці wiki 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

Піт, 16 байт, глибина 3, A000035 від A000030

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

Наступна відповідь повинна відповідати наступним умовам:

0, 1, 0

Це Піет, тому "байти" - це справді коделі. Ось він у великих розмірах коделів:

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

Програма просто читає nі видає nмодуль 2.


9

Marbelous, 7 байт, глибина 3, A011760 від A000027

Минув час, коли цей сайт побачив відповідь Марбело !

}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-х років.

Rail - це двомісна мова, яка є тематичною навколо залізничних колій. Наведений вище код використовується для @відбивачів, які змінюють напрям руху поїзда, щоб зменшити кількість нових ліній. Ось це невольф:

$ '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 байти

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

Це натомість генерує послідовність ad infinitum. Деякі додаткові команди:

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

Гольфскрипт, 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).


Ви можете *!
опустити

@ ɐɔıʇǝɥʇ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

Дериф, 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 приймає вхід як stdin.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.