交换序列


9

您的任务是编写一些输出OEIS序列的代码,并在代码(A______)中包含该序列的名称。很容易吧?好了,这很重要,当代码中的序列名称更改为第二个序列的名称时,您的代码还必须输出另一个单独的序列。

输入输出

您的代码可以是一个函数或完整的程序,它通过标准输入法获取n并输出序列的第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

Answers:


8

JavaScript(ES6),16 15字节

n=>4&~0xA000004

适用于A000004(全0)和A010709(全4)。

以前的17字节解决方案适用于A010850至A010859(包括A010850):

n=>~-0xA010850%36

以前的25字节解决方案可与A010850至A010871一起使用:

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

这只是在炫耀(我对OEIS不够了解,以至于它
看起来

奇怪-两个答案开始在25个字节,并双双golfed到17个字节在一分钟
pppery

@ppperry嘿,但我可以移植您的答案,它只有15个字节……
尼尔(Neil)

JS与果冻绑在一起?做得非常好
Shaggy

@蓬松的不; 发布了一个新的较短的果冻答案。
pppery



3

cQuents,16字节

=A000007//5#|A:0

在线尝试!A0000071,0,0,0,0...

=A000004//5#|A:0

在线尝试!A0000040,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

感谢Conor O'Brien的4//5 = 07//5 = 1

如果规范更加灵活,则应该是O7A$O4A$



2

dc,13个字节

编辑:显然OEIS列出了0第th到30第th的能力-我只是在这些序列上进行了搜索,结果发现原始13字节解决方案是最复杂的。但是我发现了另一种解决方案,该解决方案仅1适用于更多字节,适用于9序列。

A000012的解决方案(常数1的序列):

?A000012 4%^p

在线尝试!

A001477(非负整数)的解决方案:

?A001477 4%^p

在线尝试!

A000290的解决方案(完美平方序列):

?A000290 4%^p

在线尝试!

取消高尔夫/解释

这些解决方案利用了dc解释A为事实10,因此A001477成为价值10001477。此外它利用该序列是n^0n^1并且n^2其与相一致10000012 % 4 == 010001477 % 4 == 110000290 % 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]

9个序列的14字节解决方案

想法仍然是相同的,这一次我们需要做一个% 97,以获得正确的功率-它适用于序列A010801A010802A010803A010804A010805A010806A010807A010808A010809(这些是序列n^13。 。,n^21)。

这是第一个:

?A010801 97%^p

在线尝试!


1
+1支持两个以上的序列!
尼尔

1

Python 2中,25 17个字节

print'A000012'[5]

适用于A000004和A000012。(因为序列都是常数项,所以输入被忽略)。


1

Befunge 98,10个字节

#A000012$q

也适用于A000004。通过退出代码输出。


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(全1序列)和A000004(全0序列)。

利用几种巧妙的技巧。我们0x将十六进制运算符用作给出我们的序列167772178。进行比较以查看其-eq是否160mb+18使用mb运算符(160mb167772160)。然后+将该布尔结果转换为int 以输出适当的10。请注意,代码中除A000012以外的任何序列都将导致0输出。


1

Neim10 9字节

A000012ᛄ>

说明:

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

A000012(全都是)和A007395(全是两位)

该函数将输入放在堆栈的顶部,而将输出放在堆栈的顶部。

在线尝试!








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是1序列。只需将数字除以9,就可以永远输出结果。


0

QBIC,28个字节

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

这将在序列A0000341、2、1、2、1 ...)和A0000350、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

在线尝试!

说明

它利用名称A000351A000007在位置6处包含右数字D,使得序列为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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.