OEISシーケンスを表示する


29

整数列のオンライン百科事典(OEIS)は、整数系列のオンラインデータベースです。数学的に興味深い280000近くのシーケンスが含まれています。

シーケンスの例:

あなたの仕事は、できる限り多くのOEISシーケンスを表示するプログラムまたは関数を、最大100バイトのソースコードで記述することです。プログラムは、入力としてシーケンスID(先頭Aとゼロなし)を受け入れ、そのシーケンスの最初の20個の数値を出力する必要があります。

OEIS Webサイトから直接データを取得することは許可されていません。すべてのシーケンスはコードで計算する必要があります。

得点

スコアは、プログラムが表示できるOEISシーケンスの数です。回答には、プログラムが認識するシーケンスのIDをリストする必要があります。

Java 8の有効な答えは次のとおりです。

(int a) -> {
    for (int i = 0; i < 20; i++) {
        System.out.println(a==27?i+1:i*i); 
    }
};

このプログラムは、正の整数(A000027-入力27)と二乗(A000290-入力290)を表示できるため、スコアは2です。

注意

OEIS Webサイト全体をスクレイピングしないようにしてください:-) シーケンス名(約3メガ)またはシーケンス値(約9メガ)をダウンロードできます。このダウンロードは、OEISエンドユーザーライセンス契約の対象です。


先頭の0をとるように記述できますか?
TrojanByAccident

2
ふう!OEISの挑戦!
ジョンファンミン

1
@TrojanByAccidentアイデアがOEISに接続することである場合、PPCGでは許可されません
ネイサンメリル

@NathanMerrillこのインスタンスでカウントされるかどうかはわかりませんでした
TrojanByAccident

機能は許可されていますか?
-xnor

回答:


25

CJam(2182 2780 3034シーケンス)

{:ZA3#:Cb(40-z_!!:B-\+CbB)/)_mqmo:M+:NK{)[N0{N1$_*-@/M@+1$md@M@-}K*]<W%B{X0@{2$*+\}%}*ZB&=}%\C)<f*}

これにより、包括的範囲の正解が得られます

  • [A040000, A040003][A040005, A040008][A040011, A040013]A040015[A040019, A040022]A040024[A040029, A040033]A040035A040037[A040041, A040043]A040048A040052[A040055, A040057]A040059A040063[A040071, A040074]A040077A040080[A040090, A040091][A040093, A040094]A040097A040099[A040109, A040111]A040118A040120[A040131, A040135]A040137A040139[A040142, A040143]A040151[A040155, A040157]A040166A040168[A040181, A040183][A040185, A040968]
  • [A041006, A041011][A041014, A042937]
  • A006983[A011734, A011745][A023975, A023976][A025438, A025439][A025443, A025444]A025466A025469[A034422, A034423]A034427A034429A034432A034435[A034437, A034439]A034441A034443A034445A034447[A034449, A034459][A034461, A034462][A034464, A034469]A034471A034473[A034475, A034477][A034479, A034487][A034489, A034490][A034492, A034493]A034495[A034497, A034512][A034514, A034516][A034518, A034523][A034525, A034582]A036861A047752A052375A055967A061858A065687A066035A067159A067168A070097A070202A070204[A070205, A070206]A072325A072769A076142A082998A083344A085974A085982A086007A086015A089458A093392A094382A105517A108322A111855A111859[A111898, A111899]A112802A122180A129947A137579A159708[A161277, A161280]A165766A167263A178780A178798A180472A180601A181340A181735A184946A185037A185203[A185237, A185238][A185245, A185246]A185255A185264A185284A191928A192541A197629A198255A200214A206499A210632A212619[A217148, A217149]A217151[A217155, A217156]A228953A230533A230686A235044A235358A236265A236417A236460A238403[A243831, A243836]A248805A250002A256974A260502A264668A276183A277165A280492A280815

A040???配列からの非合理平方根の連分数に対応sqrt(2)するsqrt(1000)(以前OEISに見えるが、便利にランダムな配列で満たされたものに対応するギャップを有します)。A041???配列は連分数の分子と分母に対応convergentsから非合理平方根のためsqrt(6)sqrt(1000)(ギャップに対応したsqrt(10)時、A005667 and A005668)。他の分類されたシーケンスには、最初の20個の値にゼロがあります。

答えは、GolfScriptの私の以前の2つの答えの要素を移植します。

シーケンスオフセットをsqrtの値にマッピングする短い閉形式のxnorに感謝しx -> x + round(sqrt(x))ます。以前の計算(非正方形のリストの生成とインデックスによる選択)の節約により、ほとんどの範囲外のインデックスのフォールバックがすべてゼロになるのに十分でした。


n番目の非正方形が次の式で与えられると便利n + round(sqrt(n))でしょうか?
-xnor

@xnor、いいね。素敵な式を見つけようとしましたが、切り捨てるのsqrt(n)ではなく、最も近くに丸めることはありませんでした。これにより、すぐに3バイトの節約ができます。これは、フォールバックを追加するには十分ではありませんが、希望を生かし続けます。
ピーターテイラー

35

Python 2、875シーケンス

print', '.join('%020d'%(10**20/(input()-21004)))

シーケンス21016(1/12の10進数)から219991/995の 10進数)の875で機能します。

このチャンクは、手作業で偶然シーケンスIDを入力するという洗練された検索アルゴリズムで見つけました。範囲内のシーケンスの一部はこの形式ではなく、他の場所に表示されます(これを指摘してくれたMitchell Spectorに感謝します)。たとえば、21021は1/17の拡張ではありません。

中断があっても、1 / nのシーケンスはidとして表示されn+21004ます。残りはシフトされませんが、欠落しているシーケンスは他の場所に現れます。たとえば、1/17は7450と表示されます。

ダウンロードしたシーケンス名のコピーを使用して一致するものをカウントしました。

別のブロックは、16742から17664までの848シーケンス提供ます

n=input()-16729
for i in range(20):k=n/12;a=int((8*k+1)**.5/2+.5);print(a*i+k-a*(a-1)/2)**(n%12+1)

これらはすべて形式を持ってn -> (a*n+b)^c2≤a≤12, 0≤b<a, 1≤c≤12ます。コードは、逆三角形の数とモジュラスを介して係数を抽出します。前と同様に、範囲内のすべてのシーケンスが一致するわけではありません。これら2つの式が100バイトに収まる場合、1723個のシーケンスが得られます。

有望なチャンク:

  • 1929マッチング配列:41006を介して42397、分母と連分数convergentsの分母。
  • 〜3300の一致シーケンス:147999から151254:ベクトルリストの順序付け方法を見つけることができる場合、Z ^ 3でのウォークのカウント。

すべての数字(数字、マイナス記号、小数点)を削除してOEISシーケンス名をグループ化することにより、他の潜在的なチャンクのカテゴリを次に示します。それらは出現回数でソートされます。

3010    Number of walks within N^ (the first octant of Z^) starting at (,,) and consisting of n steps taken from {(, , ), (, , ), (, , ), (, , ), (, , )}
2302    Number of reduced words of length n in Coxeter group on  generators S_i with relations (S_i)^ = (S_i S_j)^ = I
979     Primes congruent to  mod 
969     Numerators of continued fraction convergents to sqrt()
967     Denominators of continued fraction convergents to sqrt()
966     Continued fraction for sqrt()
932     Decimal expansion of /
894     Duplicate of A
659     Partial sums of A
577     Divisors of 
517     Inverse of th cyclotomic polynomial
488     Expansion of /((x)(x)(x)(x))
480     Decimal expansion of th root of 
471     Number of nX  arrays with each element x equal to the number its horizontal and vertical neighbors equal to ,,,, for x=,,,,
455     First differences of A
448     Decimal expansion of log_ ()
380     Numbers n such that string , occurs in the base  representation of n but not of n+
378     Erroneous version of A
375     Numbers n such that string , occurs in the base  representation of n but not of n
340     Numbers n with property that in base  representation the numbers of 's and 's are  and , respectively

35シーケンス:

c=input()
for n in range(20):print[(c-1010)**n,(c-8582)*n][c>2e3]

作品8585(3の倍数)を介して、8607(25の倍数)、および1018年〜(8の累乗)1029(19の累乗)。便利なことに、これらはすべてidで順序付けられた1つのチャンクです。

これは、許可された100バイトのうち65バイトのみを使用し、まだ完全にはゴルフされていないため、別の素敵なチャンクを探します。


ハハ、いいね!
マルティセン

また、短い:lambda n:range(0,(n-8582)*20,n-8582)
マルティセン

@Maltysen Specがプログラムを言ったので、私はそれで行きました。お願いします。
-xnor

2
良い考えですが、21016-21999の範囲が完全に逆数で構成されているとは思いません。たとえば、A21021は1、33、727、13365、221431、3428733、...であり、1/17の10進数ではありません。どのシーケンスが逆数で、どのシーケンスが逆数かを確認していません。
ミッチェルスペクター

1
@xnorどのように多くの一致が得られても、それを私の答えと組み合わせて、さらに252をカウントに追加できます。入力が21016-21999の範囲にない場合は、20 0を出力します。(252個のシーケンスのいずれもその範囲内にありません。)
ミッチェルスペクター

29

Bash + coreutils、252シーケンス

yes 0|head -20

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

252 OEISシーケンスで動作:A000004、A006983、A011734、A011735、A011736、A011737、A011738、A011739、A011740、A011741、A011742、A011743、A011744、A011745、A023975、A023、A025438、A025439、A25、2525 A034422、A034423、A034427、A034429、A034432、A034435、A034437、A034438、A034439、A034441、A034443、A034445、A034447、A034449、A034450、A034451、A034452、A034453、A034454、A034455、A4445、A4 A034462、A034464、A034465、A034466、A034467、A034468、A034469、A034471、A034473、A034475、A034476、A034477、A034479、A034480、A034481、A034482、A034483、A034484、A034485、A034486、A034484、A034485、A034486、A034484、A034485、A034486,003 A034495、A034497、A034498、A034499、A034500、A034501、A034502、A034503、A034504、A034505、A034506、A034507、A034508、A034509、A034510、A034511、A034512、A034514、A034515、A034516、A034518、A034519、A034520、A034521、A034522、A034523、A034525、A034526、A034527、A034528、A034529、A034530、A034531、A034532、A034533、A034534、A034535、A034538、A034538、A034538、A034538、A034538、A034538、A034538、A034538、A034538、A034538、A034538、A034538、A034538、A034538、A034539 A034544、A034545、A034546、A034547、A034548、A034549、A034550、A034551、A034552、A034553、A034554、A034555、A034556、A034557、A034558、A034559、A034560、A034561、A034563、A034563、A034563、A034563、A034564 A3 A070204、A070205、A070206、A072325、A072769、A076142、A082998、A083344、A085974、A085982、A086007、A086015、A089458、A093392、A094382、A105517、A108322、A111855、A111859、A111898、A111899、A112802、A122180、A129947、A137579、A159708、A161277、A161278、A161279、A161280、A165766、A167263、A178780、A178798、A180472、A180601、A181340、A181735、A184946、A185037、A185203、A185237、A185238、A185245、185 A185255、A185264、A185284、A191928、A192541、A197629、A198255、A200214、A206499、A210632、A212619、A217148、A217149、A217151、A217155、A217156、A228953、A230533、A230686、A235044、A235358、A236265、A236417、A236460、A236417、A236460 A243831、A243832、A243833、A243834、A243835、A243836、A248805、A250002、A256974、A260502、A264668、A276183、A277165、A280492、A280815A198255、A200214、A206499、A210632、A212619、A217148、A217149、A217151、A217155、A217156、A228953、A230533、A230686、A235044、A235358、A236265、A236417、A236460、A238403、A243831、A243832、A243833、A243834、243 A248805、A250002、A256974、A260502、A264668、A276183、A277165、A280492、A280815A198255、A200214、A206499、A210632、A212619、A217148、A217149、A217151、A217155、A217156、A228953、A230533、A230686、A235044、A235358、A236265、A236417、A236460、A238403、A243831、A243832、A243833、A243834、243 A248805、A250002、A256974、A260502、A264668、A276183、A277165、A280492、A280815


4
へえ、かわいいアイデア!
ジョナサンアラン

12

Python(sympyを使用)、144 146シーケンス

import sympy
f=lambda a,M=16627:[int(c)for c in str(sympy.log((a<M)*46.5+4+a-M).n(20))if'.'<c][-20:]

この関数fは、A016578からA016723までの146個のシーケンスに対して機能します。

これらはすべて、repl.itのテストハーネスによって出力されます

A016578からA016626までの49個のシーケンスは、log(3/2)、log(5/2)、log(7/2)、...、log(99/2)の10進展開です。

A016627からA016723までの97個のシーケンスは、log(4)、log(5)、log(6)、...、log(100)の10進展開です。

49の最初の2つは、それらのログ値が1未満であるため、最初の小数点以下で始まります。そのため、20の有効数字を取得する呼び出しの結果の小数点以下20桁を取得します。小数点以下の文字アウトフィルタ、および整数へのキャスト残りの各桁の文字(ただし、多分必要はありません)。[-20:]...n(20)if'.'<cint(c)


10

Jelly、1127 1975シーケンス

-現在、これはxnorMitchell Spectorの結果を組み合わせていますが、それでも78バイトで成長する余地があります。彼らにクレジットを与えてください!

0x20
_21004µȷ20:DU¢oU
20Ḷ×⁸+µ*þ12
11R‘µẋ`€F$ç"Ḷ€F$;/
_108ị¢

“æÑØ‘×ȷ3¤>J×$S‘µĿ

TryItOnline!

1975年のシーケンスは次のとおりです。

  • 20個のゼロで始まる252(以外の入力の動作[16000,21999]);
  • 範囲にある848の配列1674217664一致(a*n+b)**c式(入力の動作を[16000,17999])。そして
  • 21016から21999の範囲にある875シーケンス1/n(の入力の動作[18000,21999])に一致します。

どうやって?

0x20 - Link 1, TwentyZeros: no arguments
0    - zero
  20 - twenty
 x   - repeat

_21004µȷ20:DU¢oU - Link 2, DecimalExpansionOfReciprocal: oeisIndexNumber
      µ          - monadic chain separation
       ȷ20       - 1e20
_21004           - subtract 21004 from oeisNumber to get the n value
          :      - integer division, i.e. 1e20 // n
           D     - decimal list
            U    - reverse
             ¢   - call last link (1) as a nilad, i.e. get twenty zeros
              o  - logical or, i.e. pad the right of the reversed list to twenty with zeros
               U - reverse again

20Ḷ×⁸+µ*þ12 - Link 3, BlockOf12abcFormulaResults: a, b
20Ḷ         - lowered range of 20 [0,1,...,19] i.e. the values of n in (a*n+b)**c
    ⁸       - left argument, a
   ×        - multiply
     +      - add b
      µ     - monadic chain separation
        þ12 - outer product with [1,2,...,12] of... i.e. the values of c in (a*n+b)**c
       *    -     exponentiation

11R‘µẋ`€F$ç"Ḷ€F$;/ - link 4, AllabcFormulaResults: no aguments
11R                - range of 11 [1,2,...,11]
   ‘               - increment   [2,3,...12] i.e. the values of a in (a*n+b)**c
    µ              - monadic chain separation
         $         - last two links as a monad
     ẋ`€           - repeat list with repeated arguments for €ach [[2,2],[3,3,3],...,[12,12,12,12,12,12,12,12,12,12,12,12]]
        F          - flatten into one list
               $   - last two links as a monad
            Ḷ€     - lowered range of €ach [[0,1],[0,1,2],...,[0,1,2,3,4,5,6,7,8,9,10,11]]
              F    - flatten into one list
          ç"       - zip with (") last link (3) as a dydad (ç) i.e. get all the results
                 / - reduce with
                ;  - concatenation i.e. make the list of lists of lists one list of lists.

_108ị¢ - Link 5, abcFormulaResult: oeisIndexNumber
_108   - subtract 108 from the oeisNumber (indexes in Jelly are modular and there are 924 entries, this is shorter than _16740)
     ¢ - call last link (4) as a nilad
    ị  - index into i.e. get the one relevant result of 20 terms

 - Link 6, an empty link (cheaper in bytes than the %6 alternative in the main link)

“æÑØ‘×ȷ3¤>J×$S‘µĿ - Main link: oeisIndexNumber           e.g. 1-15999; 16000-17999; 18000-21999; 22000+
        ¤         - nilad followed by link(s) as a nilad
“æÑØ‘             - codePage indexes [22,16,18]
      ȷ3          - 1e3
     ×            - multiply [22000,16000,18000]
         >        - greater than (vectorises)            e.g. [1,1,1]; [1,0,1];     [1,0,0];     [0,0,0]
            $     - last two links as a monad
          J       - range(length) [1,2,3]
           ×      - multiply                             e.g. [1,2,3]; [1,0,3];     [1,0,0];     [0,0,0]
             S    - sum                                  e.g. 6;       4;           1;           0
              ‘   - increment                            e.g. 7;       5;           2;           1
               µ  - monadic chain separation
                Ŀ - call link(index) as a monad with the oeisIndexNumber
                        link indexing is 1-based and modular so 7 calls link 1
              ><        hence the empty link 6 replacing a %6 here

8

Mathematica、39 173 189シーケンス

If[l=0~Range~19;#<4^7,l,If[#<3^9,#&@@RealDigits[Log[j=16627;#-j+If[#<j,49.5,4]],10,20],#-22956-l]]&

ジョナサンアランの答えに触発されました。

対象:

  • 147728374830、および8554(これらの最初の20項です {0, 1, 2, ... , 19}
  • 16578から16626(log(3/2)の10進展開、log(5/2)の10進展開、... log(99/2)の10進展開)
  • 16627から16723(log(4)の10進展開、log(5)の10進展開、... log(100)の10進展開)
  • 22958から22996(2-n、3-n、... 40-n)

6

CJam、1831シーケンス

{168680-:Zz1320b900b48md:R;H+:QB+2*,:!1_tQWtQ)WtK{[WQW*_(]+1$f=[1R2+R~R4+*2/WR-X$-].*1b+}/J~>ZW>f*}

これは、199から始まるシーケンスのための正しい出力できます0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0し、包括的な範囲のすべてのシーケンスを[A168680, A169579]して[A170000, A170731]。その大部分はこれら2つの範囲を扱い、最初の範囲の開始前にすべてゼロのフォールバックがあります。

問題の2つの範囲の形式は

長さの短縮語の数nPSi(Si)2=(SiSj)Q=I

P350Q1750(t1)

tQ+1+tQt112(P2)(P1)tQ+112(P2)(P+1)tQ+(P1)t1
R=P+3

1

バッチ、62シーケンス

@for /l %%i in (1,1,20)do @set/a"n=(n=22956-%1)*(n>>=16)+%%i*(n|%1-8582)"&call echo %%n%%

シーケンスの1つのブロックを実装するのは困難でしたが、89バイトで2つを管理しました!説明:%18585-8607のパラメーターの場合、22956-%1>>16ゼロを返し、(22956-%1)式を無視し、ループ変数にそれぞれ3-25を掛けます。一方、22958-22996のパラメーターの場合、マイナス1を返し、式がこれn|により、乗算係数がマイナス1に置き換えられ、ループ変数が効果的に減算されます。


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