Tampilkan urutan OEIS


29

The On-Line Encyclopedia of Integer Sequences (OEIS) adalah database online urutan integer. Ini berisi hampir 280000 urutan minat matematika.

Contoh urutan:

Tugas Anda adalah menulis program atau fungsi yang menampilkan sebanyak mungkin urutan OEIS, dengan kode sumber maksimum 100 byte . Program Anda harus menerima sebagai input nomor urut (tanpa nomor prabayar Adan nol), dan output 20 angka pertama dalam urutan itu.

Anda tidak diperbolehkan mengambil data secara langsung dari situs web OEIS; semua urutan harus dihitung oleh kode Anda.

Mencetak gol

Skor adalah jumlah urutan OEIS yang dapat ditampilkan oleh program. Jawaban harus mencantumkan ID dari urutan yang dikenali oleh program mereka.

Contoh

Berikut jawaban yang valid di Java 8:

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

Program ini dapat menampilkan bilangan bulat positif (A000027 - input 27) dan kotak (A000290 - input 290), sehingga nilainya 2.

Catatan

Harap hindari mengikis seluruh situs web OEIS :-) Anda dapat mengunduh nama urutan (sekitar 3 MB) atau nilai urutan (sekitar 9 MB). Perhatikan bahwa unduhan ini dicakup oleh Perjanjian Lisensi Pengguna Akhir OEIS .


Bisakah kita menulisnya sehingga dibutuhkan 0 memimpin?
TrojanByAccident

2
WHOO! Tantangan pada OEIS!
JungHwan Min

1
@TrojanByAccident jika ide Anda terhubung ke OEIS, itu tidak diizinkan di PPCG
Nathan Merrill

@NathanMerrill Saya tidak yakin apakah itu termasuk dalam contoh ini
TrojanByAccident

Apakah fungsi diizinkan?
xnor

Jawaban:


25

CJam ( 2182 2780 3034 urutan)

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

Ini memberikan jawaban yang benar untuk rentang inklusif

  • [A040000, A040003], [A040005, A040008], [A040011, A040013], A040015, [A040019, A040022], A040024, [A040029, A040033], A040035, A040037, [A040041, A040043], A040048, A040052, [A040055, A040057], A040059, A040063, [A040071, A040074], A040077, A040080, [A040090, A040091], [A040093, A040094], A040097, A040099, [A040109, A040111], A040118, A040120, [A040131, A040135], A040137, A040139, [A040142, A040143], A040151, [A040155, A040157], A040166, A040168, [A040181, A040183],[A040185, A040968]
  • [A041006, A041011], [A041014, A042937]
  • A006983, [A011734, A011745], [A023975, A023976], [A025438, A025439], [A025443, A025444], A025466, A025469, [A034422, A034423], A034427, A034429, A034432, A034435, [A034437, A034439], A034441, A034443, A034445, A034447, [A034449, A034459], [A034461, A034462], [A034464, A034469], A034471, A034473, [A034475, A034477], [A034479, A034487], [A034489, A034490], [A034492, A034493], A034495, [A034497, A034512], [A034514, A034516], [A034518, A034523], [A034525, A034582], A036861, A047752, A052375, A055967, A061858, A065687, A066035, A067159, A067168, A070097, A070202, 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, A161280], A165766, A167263, A178780, A178798, A180472, A180601, A181340, A181735, A184946, A185037, A185203, [A185237, A185238], [A185245, A185246], A185255, A185264, A185284, A191928, A192541, A197629, A198255, A200214, A206499, A210632, A212619, [A217148, A217149], A217151, [A217155, A217156], A228953, A230533, A230686, A235044, A235358, A236265, A236417, A236460, A238403, [A243831, A243836], A248805, A250002, A256974, A260502, A264668, A276183, A277165, A280492,A280815

The A040???urutan sesuai dengan fraksi terus akar kuadrat non-rasional dari sqrt(2)ke sqrt(1000)(dengan kesenjangan yang sesuai dengan orang-orang yang muncul di awal Oei, tapi nyaman diisi dengan urutan acak). The A041???urutan sesuai dengan pembilang dan penyebut dari fraksi terus convergents untuk akar kuadrat non-rasional dari sqrt(6)ke sqrt(1000)(dengan kesenjangan yang sesuai dengan sqrt(10), di A005667 and A005668). Urutan berbagai macam lainnya memiliki nol untuk dua puluh nilai pertama mereka.

Jawaban port elemen dari dua jawaban saya sebelumnya di GolfScript:

Banyak terima kasih kepada xnor untuk x -> x + round(sqrt(x))offset urutan pemetaan bentuk tertutup pendek ke nilai ke sqrt. Penghematan pada kalkulasi saya sebelumnya (menghasilkan daftar non-kuadrat dan memilih berdasarkan indeks) memberikan cukup untuk memiliki semua-nol mundur untuk sebagian besar indeks di luar kisaran.


Mungkinkah berguna bahwa non-square diberikan oleh n + round(sqrt(n))?
xnor

@ xnor, bagus. Saya mencoba menemukan formula yang bagus, sqrt(n)tetapi tidak terpikir oleh saya untuk membulatkan ke terdekat daripada ke bawah. Itu memberikan penghematan tiga byte langsung, yang tidak cukup untuk menambah mundur tetapi tetap membuat harapan tetap hidup.
Peter Taylor

35

Python 2, 875 urutan

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

Berfungsi untuk 875 dari urutan 21016 (angka desimal 1/12) hingga 21999 (angka desimal 1/995).

Saya menemukan potongan ini dengan algoritma pencarian canggih mengetik sembarang urutan id dengan tangan. Beberapa urutan dalam rentang ini bukan dari format ini dan muncul di tempat lain (terima kasih kepada Mitchell Spector untuk menunjukkan ini). Misalnya, 21021 bukan perluasan 1/17.

Bahkan dengan interupsi, urutan untuk 1 / n muncul sebagai id n+21004. Sisanya tidak bergeser, tetapi urutan yang hilang muncul di tempat lain. Misalnya, 1/17 muncul sebagai 7450 .

Saya menghitung yang cocok menggunakan salinan nama urutan yang diunduh .

Blok yang berbeda menghasilkan 848 urutan dari 16742 hingga 17664 .

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)

Ini semua memiliki bentuk n -> (a*n+b)^c, di mana 2≤a≤12, 0≤b<a, 1≤c≤12. Kode mengekstrak koefisien melalui pembalikan angka segitiga dan moduli. Seperti sebelumnya, tidak semua urutan dalam rentang cocok. Jika dua ekspresi ini bisa muat dalam 100 byte, itu akan memberikan 1.723 urutan.

Potongan yang menjanjikan:

  • 1929 urutan pencocokan: 41006 hingga 42397 , pembilang dan penyebut konvergensi fraksi lanjutan.
  • ~ 3300 urutan pencocokan: 147999 hingga 151254 : hitungan jalan di Z ^ 3, jika Anda dapat menemukan bagaimana daftar vektor disusun.

Berikut adalah kategori untuk potongan potensial lainnya, melalui pengelompokan nama urutan OEIS dengan menghapus semua angka (digit, tanda minus, titik desimal). Mereka diurutkan berdasarkan jumlah penampilan.

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 urutan:

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

Bekerja dari 8585 (kelipatan 3) hingga 8607 (kelipatan 25), dan 1018 (kekuatan 8) hingga 1029 (kekuatan 19). Mudahnya, ini semua dalam satu potongan yang dipesan oleh id.

Ini hanya menggunakan 65 dari 100 byte yang diizinkan dan belum sepenuhnya golf, jadi saya akan mencari potongan bagus lainnya.


haha, bagus!
Maltysen

juga, lebih pendek:lambda n:range(0,(n-8582)*20,n-8582)
Maltysen

@Maltysen Spec mengatakan program, jadi saya pergi dengan itu. Saya akan bertanya.
xnor

2
Ide bagus, tapi saya rasa kisaran 21016-21999 tidak sepenuhnya terdiri dari timbal balik. Misalnya, A21021 adalah 1, 33, 727, 13365, 221431, 3428733, ..., bukan angka desimal 1/17. Saya belum memeriksa untuk melihat urutan mana yang timbal balik dan mana yang tidak.
Mitchell Spector

1
@ xnor Namun banyak pertandingan yang Anda dapatkan, Anda dapat menggabungkannya dengan jawaban saya untuk menambahkan 252 lainnya ke hitungan: jika input tidak berada dalam kisaran 21016-21999, output 20 0's. (Tak satu pun dari 252 urutan saya terletak pada kisaran itu.)
Mitchell Spector

29

Bash + coreutils, 252 urutan

yes 0|head -20

Cobalah online!

Bekerja pada 252 sekuens OEIS: A000004, A006983, A011734, A011735, A011736, A011737, A011738, A011740, A011740, A011741, A011742, A011743, A011744, A011744, A0325, A011725, A011735, A011735, A011735, A011737. A034422, A034423, A034427, A034429, A034432, A034435, A034437, A034438, A034439, A034441, A034443, A034445, A034447, A034449, A034450, A034451, A034452, A034453, A034454, A034455, A034456, A034457, A034458, A034459, A034461. A034462, A034464, A034465, A034466, A034467, A034468, A034469, A034471, A034473, A034475, A034476, A034477, A034479, A034480, A034481, A034482, A034483, A034484, A034485, A034486, A034487, A034489, A034490, A034492, A034493, A034495, A034497, A034498, A034499, A034500, A034501, A034502, A034503, A034504, A034505, A034506, A034507, A034508, A034509, A034503, A0344510, A0344510, A034453, A034501, A034495A034518, A034519, A034520, A034521, A034522, A034523, A034525, A034526, A034527, A034528, A034529, A034530, A034531, A034532, A034533, A034534, A034535, A034536, A034537, A034538, A034539, A034540, A034541, A034542, A034543, A034544, A034545, A034546, A034547, A034548, A034549, A034550, A034551, A034552, A034553, A034554, A034555, A034556, A034557, A034558, A034559, A034560, A034561, A034562, A034563, A034564, A034565, A034566, A034567, A034568, A034569, A034570, A034571, A034572, A034573, A034574, A034575, A034576, A034577, A034578, A034579, A034580, A034581, A034582, A036861, A047752, A052375, A055967, A061858, A065687, A066035, A067159, A067168, A070097, A070202, A070204, A070205, A070206, A072325, A072769, A076142, A082998, A083344, A085974, A085982, A086007, A086015, A089458, A093392, A09411218, A11901111811118, A1070146A111899, A112802, A122180, A129947, A137579, A159708, A161277, A161278, A161279, A161280, A1657263, A178780, A178798, A180472, A180601, A180601, A181340318, A181232, A181240, A181270, A16977 A185255, A185264, A185284, A19192828, A192562, A197629, A198255, A200214, A206499, A210632, A212619, A217148, A217149, A217151, A217155, A217156, A2178302302302302302302302302302302302302302303303303 Dengan Tidak Ada Tidak Ada A243831, A243832, A243833, A243834, A243835, A243836, A248805, A250002, A25692, A256974, A260502, A264668, A276183, A277165, A280492, A280498A198255, A200214, A206499, A210632, A212619, A217148, A217141, A217151, A217155, A217156, A228953, A230533, A230686, A235044, A2353565, A236265, A236438, A234438, A32, A32, A328, A328255, A200214, A206499, A210632, A212619, A217148 A248805, A250002, A256974, A260502, A264668, A276183, A277165, A280492, A280815A198255, A200214, A206499, A210632, A212619, A217148, A217149, A217151, A217155, A217156, A228953, A230533, A230686, A235044, A2353565, A236265, A236438, A234438, A32, A32, A328, A328255, A200214, A206499, A210632, A212619, A217148 A248805, A250002, A256974, A260502, A264668, A276183, A277165, A280492, A280815


4
Heh, ide yang lucu!
Jonathan Allan

12

Python (dengan sympy), 144 146 urutan

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:]

Fungsi ini fbekerja untuk urutan 146 A016578 hingga A016723 inklusif.

Semua ini adalah output dengan memanfaatkan tes di repl.it .

The 49 urutan A016578 melalui A016626 inklusif adalah ekspansi desimal log (3/2), log (5/2), log (7/2), ..., log (99/2).

Itu 97 urutan A016627 melalui A016723 inklusif adalah ekspansi desimal log (4), log (5), log (6), ..., log (100).

Pertama dua dari 49 mulai dari tempat desimal pertama sejak nilai log bagi mereka yang kurang dari 1 , sehingga[-20:] mengambil trailing 20 tempat desimal dari hasil panggilan untuk ...n(20)yang mendapat 20 angka signifikan. The if'.'<cfilter keluar karakter desimal, dan int(c)gips masing-masing karakter yang tersisa digit ke integer (meskipun mungkin tidak diperlukan).


10

Jeli, 1127 1975 urutan

- saat ini menggabungkan temuan xnor dan Mitchell Spector , tetapi masih memiliki ruang untuk pertumbuhan pada 78 byte. Pergi beri mereka kredit!

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

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

TryItOnline!

Urutan 1975 adalah:

  • 252 yang dimulai dengan dua puluh nol (perilaku untuk input di luar [16000,21999] );
  • urutan 848 terletak di kisaran 16742 ke 17664 yang cocok dengan(a*n+b)**c rumus (perilaku untuk input masuk [16000,17999]); dan
  • 875 urutan berada di kisaran 21016 hingga 21999 yang cocok dengan ekspansi desimal 1/n(perilaku untuk input masuk)[18000,21999] ).

Bagaimana?

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 urutan

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]]&

Terinspirasi oleh jawaban Jonathan Allan .

Bekerja untuk:

  • 1477 , 2837 , 4830 , dan 8554 (20 syarat pertama adalah {0, 1, 2, ... , 19})
  • 16578 hingga 16626 (ekspansi desimal log (3/2), ekspansi desimal log (5/2), ... ekspansi desimal log (99/2))
  • 16627 hingga 16723 (ekspansi desimal log (4), ekspansi desimal log (5), ... ekspansi desimal log (100))
  • 22958 hingga 22996 (2-n, 3-n, ... 40-n)

6

CJam, 1831 urutan

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

Ini memberikan hasil yang benar untuk 199 urutan yang dimulai 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0dan semua urutan dalam rentang inklusif [A168680, A169579]dan [A170000, A170731]. Sebagian besar berurusan dengan dua rentang, dengan mundur untuk semua-nol sebelum dimulainya rentang pertama.

Dua rentang yang dimaksud memiliki formulir

Jumlah kata yang direduksi panjangnya n dalam grup Coxeter pada P generator Ssaya dengan hubungan (Ssaya)2=(SsayaSj)Q=saya

untuk nilai P mulai dari 3 untuk 50 dan nilai-nilai Q mulai dari 17 untuk 50. Fungsi menghasilkan mereka diberikan dengan cara yang benar-benar tidak efisien: Saya merasa berguna untuk melipatgandakan pembilang dan penyebut(t-1) memberi gf

tQ+1+tQ-t-112(P-2)(P-1)tQ+1-12(P-2)(P+1)tQ+(P-1)t-1
meskipun untuk tujuan bermain golf saya sebenarnya bekerja dengan R=P+3.

1

Batch, 62 urutan

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

Hanya menerapkan satu blok urutan itu sulit, tetapi saya berhasil dua dalam 89 byte! Penjelasan: Untuk parameter %18585-8607, 22956-%1>>16mengembalikan nol, menyebabkan (22956-%1)ekspresi diabaikan dan kami akhirnya mengalikan variabel loop masing-masing dengan 3-25, sedangkan untuk parameter 22958-22996 mengembalikan parameter minus yang menyebabkan ekspresi menjadi dinegasikan, sementara n|faktor multiplikasi diganti dengan minus satu secara efektif mengurangi variabel loop.


1
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.