Đảo ngược mã của bạn, đảo ngược OEIS


11

Nhiệm vụ ở đây là viết một chương trình lấy số tự nhiên, n và tạo ra số hạng thứ n của chuỗi OEIS. Trình tự đó phải có một định danh dưới dạng A6 chữ số. Bây giờ khi bạn lấy mã nguồn của mình và đảo ngược thứ tự các byte của nó để tạo ra một chương trình mới, chương trình đó cũng sẽ thực hiện một chuỗi OEIS. Chuỗi mới phải được xác định bởi một Achữ số theo sau bởi 6 chữ số như lần trước nhưng theo thứ tự ngược lại (bao gồm các số 0 đứng đầu).

Bây giờ để giữ cho mọi thứ không tầm thường, cả số định danh OEIS cũng như chương trình của bạn không thể là palindromes. Đó là trình tự và chương trình nên khác nhau. Bạn không thể chọn một chuỗi mà nó không tồn tại hoặc trống.

Đối với mỗi chuỗi của bạn, bạn có thể chọn sử dụng lập chỉ mục 0 hoặc 1. Họ không phải sử dụng cùng một chỉ mục. Vì một số chuỗi OEIS có một miền giới hạn, bạn chỉ cần xuất số chính xác cho miền của chuỗi. Hành vi cần thiết của bạn không được xác định bên ngoài tên miền (bạn có thể xuất 0, gặp sự cố, đặt bánh pizza, v.v.).

Đây là vì vậy câu trả lời sẽ được tính bằng byte với ít byte hơn.


Các số 0 đứng đầu có được bao gồm trong đảo ngược số thứ tự không?
pppery

1
@pppery Họ phải như vậy, vì số OEIS có đúng 6 chữ số. (nó cũng nói rõ ràng như vậy trong câu hỏi)
Jo King

Chúng ta có thể lấy đầu vào (chỉ mục) làm một chuỗi không?
TFeld

Câu trả lời:



4

Perl 6 , 55 byte (A055642 và A246550)

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

Hãy thử trực tuyến!

n

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

Hãy thử trực tuyến!

xexe4

Hầu hết các thử thách này chỉ là tìm ra một chuỗi tốt với một đảo ngược không quá phức tạp.

Cập nhật: Sử dụng câu trả lời của torcado , đây có thể là 19 byte (A010851 và A158010)

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

Hãy thử trực tuyến!


2

\ / \ /> , 15 14 byte ( A010851A158010 )

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

hiệu quả cn, đầu ra 12

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

hiệu quả j:"Ā"*1-*n, n (256n-1)

cảm ơn một người bạn đã tìm thấy trình tự vô cùng đơn giản!


1

Haskell, 47 byte ( A000010A010000 )

Cả hai trình tự tương đối đơn giản.

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

Hãy thử trực tuyến!

p n = hàm tổng Euler của n (A000010) (1 chỉ mục)

Đảo ngược:

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

Hãy thử trực tuyến!

p n = 1 nếu n = 0, nếu không n ^ 2 + 2

Thật thú vị khi thấy một câu trả lời không sử dụng bình luận ...


1

Python 2 , 59 byte (A030000 và A000030)

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

Hãy thử trực tuyến!

fk2kn

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

Hãy thử trực tuyến!

n


Phiên bản ngắn hơn, lấy chuỗi làm đầu vào (cho cả hai chuỗi) và cả hai vẫn được lập chỉ mục 0:

Python 2 , 56 byte

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

Hãy thử trực tuyến!

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

Hãy thử trực tuyến!

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.