Зворотний код, скасувати OEIS


12

Завдання тут - написати програму, яка приймає натуральне число, та виробляє й член послідовності OEIS. Ця послідовність повинна мати ідентифікатор у вигляді, за яким слід 6 цифр. Тепер, коли ви берете свій вихідний код і змінюєте порядок його байтів для створення нової програми, ця програма повинна також реалізувати послідовність OEIS. Нова послідовність повинна бути ідентифікована з наступними тими ж 6 цифрами, що і минулого разу, але у зворотному порядку (включаючи провідні нулі).ннAA

Тепер, щоб не було тривіально, ні номер ідентифікатора OEIS, ні ваша програма не можуть бути паліндрами. Тобто послідовності і програми повинні бути різними. Ви не можете вибрати послідовність, для якої реверс не існує або порожній.

Для кожної своєї послідовності ви можете використовувати індексацію 0 або 1. Їм не потрібно використовувати одне і те ж індексування. Оскільки деякі послідовності OEIS мають обмежений домен, вам потрібно вивести лише правильні числа для домену послідовності. Необхідна поведінка не визначена за межами домену (ви можете виводити 0, збивати, замовляти піцу тощо).

Це тому відповіді будуть набрані в байтах, менша кількість байтів буде кращою.


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

1
@pppery Вони повинні бути, оскільки номери OEIS мають точно 6 цифр. (це також прямо сказано у запитанні)
Джо Кінг,

Чи можемо ми взяти вхід (індекс) як рядок?
TFeld

Відповіді:



4

Perl 6 , 55 байт (A055642 та A246550)

+*.comb#}]1-_$[)4+_$^**X]_$^[)*..2,emirp-si&(perg(tros{

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

н

{sort(grep(&is-prime,2..*)[^$_]X**^$_+4)[$_-1]}#bmoc.*+

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

хехе4

Більшою частиною цього виклику було саме пошук хорошої послідовності з не надто складним реверсом.

Оновлення: використовуючи відповідь torcado , це може бути 19 байт (A010851 та A158010)

{256*$_**2-$_}#{21}

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


2

\ / \ /> , 15 14 байт ( A010851 та A158010 )

cn;n*-1*"Ā":j

ефективно cn, вихід 12

j:"Ā"*1-*n;nc

ефективно j:"Ā"*1-*n, n (256n-1)

дякую другу за знайдені неймовірно прості послідовності!


1

Haskell, 47 байт ( A000010 та A010000 )

Обидві послідовності відносно прості.

p n=sum[1|x<-[1..n],gcd x n<2]--2+n*n=n p;1=0 p

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

p n = тотальна функція Ейлера n (A000010) (1-індексація)

Відмінено:

p 0=1;p n=n*n+2--]2<n x dcg,]n..1[-<x|1[mus=n p

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

p n = 1, якщо n = 0, інакше n ^ 2 + 2

Було б цікаво побачити відповідь, яка не використовує коментарів ...


1

Python 2 , 59 байт (A030000 та A000030)

f=lambda n,k=0:k if`n`in`2**k`else f(n,k+1)#]0[`n`:n adbmal

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

fк2кн

lambda n:`n`[0]#)1+k,n(f esle`k**2`ni`n`fi k:0=k,n adbmal=f

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

н


Коротка версія, яка бере рядки як вхідні дані (для обох послідовностей), і обидві досі 0-індексованими:

Python 2 , 56 байт

f=lambda n,k=0:`k`*(n in`2**k`)or f(n,k+1)#]0[n:n adbmal

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

lambda n:n[0]#)1+k,n(f ro)`k**2`ni n(*`k`:0=k,n adbmal=f

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

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