シーケンスを入れ替える


9

あなたの仕事は、OEISシーケンスを出力し、シーケンス名をコードに含むコードを記述することです(A______)。簡単でしょう?これが問題です。コード内のシーケンスの名前が2番目のシーケンスの名前に変更された場合、コードは2番目の別個のシーケンスも出力する必要があります。

入出力

コードは、標準入力メソッドを介してnを取り、OEISページで提供されたインデックスによってインデックス付けされたシーケンスのn番目の項を出力する関数または完全なプログラムにすることができます。

そのシーケンスのOEIS bファイルで提供されるすべての値をサポートする必要があります。bファイルにない数値はサポートする必要はありません。

得点

これはです。スコアはコードのバイト数で、バイト数が少ないほど優れています。

これは、A000217とA000290で機能するHaskellの例です。

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

オンラインでお試しください!


明確にするために:コードは、シーケンスの名前をコードのその部分に入れると、そのシーケンスの番号が出力される2つのシーケンスに対して機能する必要がありますか?
HyperNeutrino 2017

@HyperNeutrinoはい。シーケンスの名前を代入すると、プログラムの機能が2番目のシーケンスになるように変更されます。
アドホックガーフハンター2017

1
コード内のシーケンスに先行ゼロがなければなりませんか?
pppery

@ppperryはい、そうすべきです。
アドホックガーフハンター2017

1
されるA必要?
Okx 2017

回答:


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でどれほど賢いかを確認できるほどOEISを知りません)
TheLethalCoder 2017

奇妙な
-2

@ppperryへー、でも私はあなたの答えを移植でき、それはたったの15バイトです...
Neil

JSはゼリーと結ばれていますか?とてもよくできました
Shaggy

@Shaggy Nope; 新しい短いゼリー回答が投稿されました。
pppery 2017



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

コナー・オブライエンのために感謝4//5 = 0して7//5 = 1

仕様がより柔軟であれば、それはとにO7A$なりO4A$ます。



2

dc、13バイト

編集:どうやらOEISは0th からthまでのパワーをリストしています30-私はこれらのシーケンスを検索したところ、元の13バイトソリューションが最もゴルフであることがわかりました。しかし19シーケンスで機能するもう1 バイトの別の解決策を見つけました。

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は正しい電力を得るためにを実行する必要があります。これはシーケンスA010801A010802A010803A010804A010805A010806A010807A010808、およびA010809(これらはシーケンスn^13です)で機能します。 、、n^21)。

これが最初のものです:

?A010801 97%^p

オンラインでお試しください!


1
+1は3つ以上のシーケンスをサポートします!
Neil

1

パイソン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 2017

1

PowerShell、23バイト

+(0xA000012-eq160mb+18)

オンラインでお試しください!

用途A000012(すべてのもののシーケンス)とA000004(すべてゼロのシーケンス)。

いくつかの巧妙なトリックを活用します。0x16進演算子として使用するシーケンスに使用します167772178。これは、演算子(is )-eq160mb+18使用することが実際にあるかどうかと比較されます。そのブール結果は、適切なor を出力するためにintとしてキャストされます。そのノート任意 A000012以外のコードのシーケンスをもたらす出力されます。mb160mb167772160+100


1

ネイム10 9バイト

A000012ᛄ>

説明:

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

A000012(すべて1)およびA007395(すべて2)

スタックの上部に入力を取り、スタックの上部に出力を残す関数。

オンラインでお試しください!


0

Gaia、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は1のシーケンスです。数値を9でフロア除算し、結果を永久に出力します。
エンジニアトースト2017






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

Husk、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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.