Поміняйте послідовність


9

Ваше завдання - написати деякий код, який виводить послідовність OEIS і містить ім'я послідовності в коді ( A______). Досить просто, правда? Ну ось ось улов, ваш код також повинен виводити другу окрему послідовність, коли ім'я послідовності в коді змінюється на ім’я другої послідовності.

Введення-виведення

Ваш код може бути функцією або повною програмою, яка приймає n за допомогою стандартного методу введення та виводить n- й член послідовності, як індексується поданим індексом на сторінці OEIS.

Ви повинні підтримувати всі значення, надані у файлах OEIS b для цієї послідовності, будь-яке число, яке не знаходиться у файлах b, не повинно підтримуватися.

Оцінка балів

Це є . Вашим балом буде кількість байтів у вашому коді, при цьому менше байтів буде кращим.

Приклад

Ось приклад у Haskell, який працює для A000217 та A000290.

f x|last"A000217"=='0'=x^2|1>0=sum[1..x]

Спробуйте в Інтернеті!


Для уточнення: Ваш код повинен працювати в двох послідовностях, коли введення імені послідовності в тій частині коду виведе номер цієї послідовності?
HyperNeutrino

@HyperNeutrino Так. Коли ім'я послідовності замінено в ній, слід змінити функцію програми, яка буде другою послідовністю.
Ad Hoc Garf Hunter

1
У послідовностей у коді повинні бути провідні нулі.
pppery

@ppperry Так, так і слід.
Ad Hoc Garf Hunter

1
Чи Aпотрібне?
Okx

Відповіді:


8

JavaScript (ES6), 16 15 байт

n=>4&~0xA000004

Працює з A000004 (усі 0) та A010709 (усі 4).

Попереднє 17-байтове рішення працює з A010850 до A010859 включно:

n=>~-0xA010850%36

Попереднє 25-байтове рішення працює з A010850 до A010871 включно:

n=>"A010850".slice(5)-39

Це просто показує (я не знаю OEIS досить добре, щоб зрозуміти, наскільки це розумно: P)
TheLethalCoder

Дивно - два відповіді розпочалися з 25 байтів, і обидва гольфувалися до 17 байтів за хвилину
pppery

@ppperry Хе, але я можу відповісти на вашу відповідь, і це було б лише 15 байт ...
Ніл

JS пов'язаний з Jelly ?! Дуже красиво зроблено
Shaggy

@Shaggy Nope; була опублікована нова коротша желе-відповідь.
pppery



3

cQuents , 16 байт

=A000007//5#|A:0

Спробуйте в Інтернеті! , A000007 ,1,0,0,0,0...

=A000004//5#|A:0

Спробуйте в Інтернеті! , A000004 ,0,0,0,0,0...

Пояснення

                    Implicit input A
=A000007            First item in the sequence equals A * 7
        //5                                                 intdiv 5 = 1
           #|A      n equals A
              :     Mode : (sequence): output nth item (1-based)
               0    Rest of the sequence is 0

                    Implicit input A
=A000004            First item in the sequence equals A * 4
        //5                                                 intdiv 5 = 0
           #|A      n equals A
              :     Mode : (sequence): output nth item (1-based)
               0    Rest of the sequence is 0

Завдяки Конору О'Браєну за 4//5 = 0та 7//5 = 1.

Якби специфікація була гнучкішою, це було б O7A$і O4A$.



2

постійного струму , 13 байт

Редагувати: Мабуть, OEIS перераховує повноваження від 0го до 30другого - я щойно здійснив пошук за цими послідовностями, і виявилося, що оригінальне 13байтове рішення є найголовнішим. Але я знайшов інше рішення для просто 1байтів, що працює для 9послідовностей.

Рішення для A000012 (константа 1 в послідовності):

?A000012 4%^p

Спробуйте в Інтернеті!

Рішення для A001477 (невід'ємні цілі числа):

?A001477 4%^p

Спробуйте в Інтернеті!

Рішення для A000290 (ідеальна послідовність квадратів):

?A000290 4%^p

Спробуйте в Інтернеті!

Необережений / Пояснення

Ці рішення використовують той факт, що dcінтерпретує Aяк 10, так і A001477стає цінністю 10001477. Далі він використовує, що послідовності є n^0, n^1і n^2що збігається з 10000012 % 4 == 0, 10001477 % 4 == 1і 10000290 % 4 == 2.

Отже ці послідовності є xyz(n) = n ^ (xyz % 4).

Command          Description          Example (3) 
?              # Push the input       [3]
 A000290       # Push sequence name   [3,10000290]
         4%    # Top %= 4             [3,2]
           ^   # Pop x,y & push y^x   [9]
            p  # Print the top        [9]

14-байтний розчин для 9 послідовностей

Ідея все ж така, цього разу нам потрібно зробити a % 97, щоб отримати потрібну потужність - вона працює для послідовностей A010801 , A010802 , A010803 , A010804 , A010805 , A010806 , A010807 , A010808 і A010809 (це послідовності n^13, .. ., n^21).

Ось перший:

?A010801 97%^p

Спробуйте в Інтернеті!


1
+1 за підтримку більше двох послідовностей!
Ніл

1

Python 2, 25 17 байт

print'A000012'[5]

Працює для A000004 та A000012. (введення ігнорується, оскільки всі послідовності є постійними термінами).



1

Желе , 17 байт

“A000578”OS%⁵ạ6*@

Спробуйте в Інтернеті!

“A000578”OS%⁵ạ6*@  Main link
“A000578”          String
         O         Codepoints
          S        Sum (364 for A000290, 373 for A000578)
           %⁵      Modulo 10 (4 for A000290, 3 for A000578)
             ạ6    Absolute Difference with 6 (2 for A000290, 3 for A000578)
               *@  [left argument] ** [result of last link (right argument)]

Також працює з A000290


Гарна робота з використанням непостійних послідовностей.
AdmBorkBork

1

PowerShell , 23 байти

+(0xA000012-eq160mb+18)

Спробуйте в Інтернеті!

Використовує A000012 (послідовність усіх) та A000004 (послідовність усіх нулів).

Використовує кілька акуратних трюків. Ми використовуємо 0xяк шістнадцятковий оператор на послідовність, яку нам дає 167772178. Це порівняно, щоб побачити, чи є його -eqнепридатним 160mb+18використання mbоператора ( 160mbє 167772160). Цей булевий результат потім видається як int з +виведенням власного 1або 0. Зауважте, що будь-яка послідовність у коді, крім A000012, призведе до 0виведення.


1

Нейм , 10 9 байт

A000012ᛄ>

Пояснення:

A            Push 42
 000012      Push 4
 or
 A007395     Push 7395
        ᛄ     Modulo 2
         >    Increment

A000012 (всі) та A007395 (усі двоє)

Функція, яка приймає вхід у верхній частині стека і залишає вихід у верхній частині стека.

Спробуйте в Інтернеті!


0

Гая , 9 байт

A000012₉/

Працює з A000012 та A000004 .

Спробуйте A000012!

Спробуйте A000004!

Пояснення

A          Undefined (ignored)
 000012    Push 12
       ₉   Push 9
        /  Integer division, results in 1


A          Undefined (ignored)
 000004    Push 4
       ₉   Push 9
        /  Integer division, results in 0

Чому всі продовжують публікувати повідомлення A00004 та A00012?
pppery

@ppperry A000004 - це нульова послідовність, а A000012 - це послідовність. Просто підлогу розділіть числа на 9 і виведіть результат назавжди.
Інженер Тост






0

Лушпиння , 20 байт

Це повертає трохи цікавіші послідовності, знову ж таки рішення 1 додані.

Це працює для A000040 (прості числа):

!!i→"A000040"e:0İfİp

Спробуйте в Інтернеті!

І це для A000045 (числа Фібоначчі):

!!i→"A000045"e:0İfİp

Спробуйте в Інтернеті!

Пояснення

Це використовує той факт, що останні цифри імен послідовностей мають різний чет:

                      -- implicit input N
             e        -- construct a list with:
              :0İf    --   list of Fibonacci numbers (prepend 0)
                  İp  --   list of the prime numbers
  i→"Axxxxx?"         -- get the last character and convert to number,
 !                    -- use it as modular index (0 -> primes, 5 -> Fibonacci)
!                     -- get the value at the Nth index

0

AHK , 40 байт

a:=SubStr("A000004",6)//9
Loop
Send %a%,

Вихід: 0,0,0,0,0,0,0,0,0,0,0,0,...

a:=SubStr("A000012",6)//9
Loop
Send %a%,

Вихід: 1,1,1,1,1,1,1,1,1,1,1,1,...

Це може бути не найкоротший код, але я думаю, що це найкоротша пара послідовностей, яку ми можемо знайти. A000004 - це нульова послідовність, а A000012 - це послідовність. Просто підлогу розділіть числа на 9 і виведіть результат назавжди.


0

QBIC , 28 байт

p=!_s@A000035`,-1|!?:%2+5-p

Це перемикається між послідовностями A000034 (1, 2, 1, 2, 1 ...) і A000035 (0, 1, 0, 1, 0, 1 ...)

Пояснення

p=                  Set p to 
  !            !    A numeric representation of
   _s         |     a substring of
     @A000035`      our sequence code (either A0035 or A0034)
     ,-1            taking just one character from the right.
?:%2                PRINT <n> MOD 2 (gives us a either 0 or 1)
    +5-p            Plus 1 for seq A24 (5-4), or plus 0 for A35

0

Лушпиння , 16 байт

Обидва рішення є 1-індексованими.

Це працює для A000351 (потужність 5):

!¡*i!6"A000351"1

Спробуйте в Інтернеті!

І цей для A000007 (потужність 0):

!¡*i!6"A000007"1

Спробуйте в Інтернеті!

Пояснення

Слід використовувати, що імена A000351 , A000007 містять правильну цифру D у положенні 6, таким чином, що послідовність є D^0,D^1,D^2,...:

                  -- implicit input N
   i!6"AxxxxDx"   -- get the right digit D and convert to number,
 ¡*            1  -- iterate (D*) infinitely beginning with 1,
!                 -- extract the value at Nth position

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