首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >逆转你的代码,逆转OEIS

逆转你的代码,逆转OEIS
EN

Code Golf用户
提问于 2019-07-10 14:12:16
回答 2查看 508关注 0票数 13

这里的任务是编写一个程序,它接受一个自然数,n,并生成一个n序列的第四项。该序列应该有一个A形式的标识符,后面跟着6位数字。现在,当您获取源代码并反转其字节的顺序以生成一个新程序时,该程序还应该实现一个OEIS序列。新的序列应该由一个A来标识,后面跟上次相同的6个数字,但顺序相反(包括前导零)。

现在,为了防止事情变得琐碎,OEIS标识号和您的程序都不能是回文。也就是说,序列和程序应该是不同的。您不能选择其反向不存在或为空的序列。

对于每个序列,您可以选择使用0或1索引。他们不必使用相同的索引。由于一些OEIS序列有一个有限的域,所以您只需要输出序列域的正确数字。您所需的行为在域外是未定义的(您可以输出0、崩溃、订购比萨饼等)。

这是密码-高尔夫,所以答案将以字节表示,而更少的字节会更好。

EN

回答 2

Code Golf用户

发布于 2019-07-11 07:48:05

Python 2,59字节(A030000和A000030)

代码语言:javascript
复制
f=lambda n,k=0:k if`n`in`2**k`else f(n,k+1)#]0[`n`:n adbmal

在网上试试!

定义函数f,返回A030000 (最小非负数k,使2^k的十进制展开包含字符串n)的第n项,0-索引。

代码语言:javascript
复制
lambda n:`n`[0]#)1+k,n(f esle`k**2`ni`n`fi k:0=k,n adbmal=f

在网上试试!

一个匿名函数,返回A000030 (n的初始数字)的第n项,0-索引。

较短的版本,它将字符串作为输入(对于两个序列),并且都是0-索引:

Python 2,56字节

代码语言:javascript
复制
f=lambda n,k=0:`k`*(n in`2**k`)or f(n,k+1)#]0[n:n adbmal

在网上试试!

代码语言:javascript
复制
lambda n:n[0]#)1+k,n(f ro)`k**2`ni n(*`k`:0=k,n adbmal=f

在网上试试!

票数 1
EN

Code Golf用户

发布于 2019-07-11 08:01:08

Haskell,47字节(A000010A010000)

这两个序列都比较简单。

代码语言:javascript
复制
p n=sum[1|x<-[1..n],gcd x n<2]--2+n*n=n p;1=0 p

在网上试试!

p n =n (A000010) (1-索引)的欧拉函数

反转:

代码语言:javascript
复制
p 0=1;p n=n*n+2--]2<n x dcg,]n..1[-<x|1[mus=n p

在网上试试!

如果n= 0,则p n =1,否则n^2 +2

看到一个不使用评论的答案会很有趣.

票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/188147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档