OEIS dizilerini görüntüleme


29

Tamsayı Dizilerin On-Line Ansiklopedisi (OEIS) tamsayı dizilerinin bir online veri tabanıdır. Neredeyse 280000 matematiksel ilgi dizisini içerir.

Dizilerin örnekleri:

Göreviniz, maksimum 100 baytlık kaynak koduyla olabildiğince çok OEIS dizisi görüntüleyen bir program veya işlev yazmaktır . Programınız dizi kimliğini (ön hazırlık Ave sıfırlar olmadan) girdi olarak kabul etmeli ve bu sıradaki ilk 20 sayıyı vermelidir .

Verileri doğrudan OEIS web sitesinden almanıza izin verilmez; tüm dizilerin kodunuzla hesaplanması gerekir.

puanlama

Skor, programın görüntüleyebileceği OEIS dizilerinin sayısıdır. Cevaplar, programları tarafından tanınan dizilerin kimliklerini listelemek zorunda kalacaktır.

Örnek

İşte Java 8'de geçerli bir cevap:

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

Bu program pozitif tamsayıları (A000027 - giriş 27) ve kareleri (A000290 - giriş 290) görüntüleyebilir, böylece skoru 2'dir.

Not

Lütfen tüm OEIS web sitesini kazımaktan kaçının :-) sıra adlarını (yaklaşık 3 megs) veya sıra değerlerini (yaklaşık 9 megs) indirebilirsiniz . Bu indirme işleminin OEIS Son Kullanıcı Lisans Sözleşmesi kapsamında olduğunu unutmayın .


Önde gelen 0'ları alacak şekilde yazabilir miyiz?
TrojanByAcident,

2
Vaay OEIS'e bir meydan okuma!
JungHwan Min

1
Fikriniz OEIS'e bağlanmaksa @TrojanByAcident, PPCG'de buna izin verilmez
Nathan Merrill

@NathanMerrill Bu durumda sayıldığından emin
değildim

İşlevlere izin verilir mi?
xnor

Yanıtlar:


25

CJam ( 2182 2780 3034 dizileri)

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

Bu dahil aralıkları için doğru cevap verir

  • [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,A108322A111855A111859[A111898, A111899]A112802A122180A129947A137579A159708[A161277, A161280]A165766A167263A178780A178798A180472A180601A181340A181735A184946A185037A185203 , [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

A040???Dizileri olmayan rasyonel kare köklerinin devam fraksiyonlar tekabül sqrt(2)için sqrt(1000)(daha önce OEIS görünür ve daha uygun olarak rasgele diziler ile dolu olanlar karşılık gelen boşluklar). A041???Dizileri devam fraksiyon numerators ve payda tekabül convergents olmayan rasyonel kare kökler sqrt(6)için sqrt(1000)(karşılık gelen boşluk ile sqrt(10)de, A005667 and A005668). Diğer çeşitli dizilerin ilk yirmi değerleri için sıfırları vardır.

Cevap, GolfScript'teki önceki iki cevabımın öğelerini içeriyor:

Kısa kapalı form eşleme dizisi için xnor'a çok teşekkürler x -> x + round(sqrt(x)), sqrt değerini atar. Önceki hesaplamamdaki tasarruf (kareler olmayanların listesini oluşturma ve dizine göre seçme), aralık dışı endekslerin çoğu için sıfır geri dönüş sağlayacak kadar sağladı.


N 'dördüncü kare olmayan karakterin verilmesi yararlı olabilir. n + round(sqrt(n)) mi?
xnor

@xnor, güzel olan. Güzel bir formül bulmaya çalıştım, sqrt(n)ancak aşağıdan ziyade en yakın noktaya döndüm . Bu hemen bir üç baytlık tasarruf sağlar, bu da bir geri dönüş eklemek için yeterli olmamakla birlikte umutları canlı tutar.
Peter Taylor

35

Python 2,875 dizileri

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

21016 sekanslarının 875'i (1/12 ondalık basamağı) ile 21999 ( 1/995 ondalık basamağı) için çalışır.

Bu parçayı elle sıra kimliğine rastgele yazılan karmaşık arama algoritmasıyla buldum. Aralıktaki dizilerin bazıları bu biçimde değildir ve başka bir yerde görünür (bunu işaret ettiği için Mitchell Spector sayesinde). Örneğin, 21021 1/17 genişlemesi değildir.

Kesintilerde bile, 1 / n dizileri id olarak görünür n+21004. Kalan kısım değiştirilmez, ancak eksik sıralar başka yerde görünür. Örneğin 1/17 7450 olarak görünüyor .

Sıra adlarının indirilmiş bir kopyasını kullanarak eşleşenleri saydım .

Farklı bir blok verir 848 dizileri arasından 16742 için 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)

Bunların hepsi formda n -> (a*n+b)^c, nerede 2≤a≤12, 0≤b<a, 1≤c≤12. Kod, üçgenleri ve modülleri ters çevirerek katsayıları çıkarır. Daha önce olduğu gibi, aralıktaki tüm diziler uyuşmuyor. Bu iki ifade 100 bayta sığabilseydi, 1723 dizisini verirdi.

Gelecek vaat eden parçalar:

  • 1929 eşleştirme dizileri: 41006 ila 42397 , sürekli kesir yakınsaklarının sayıcıları ve paydaları.
  • ~ 3300 eşleştirme dizileri: 147999 - 151254 : vektör listelerinin nasıl sıralandığını bulabilirseniz Z ^ 3 üzerindeki yürüyüş sayısı.

Tüm diğer numaraları (sayılar, eksi işareti, ondalık nokta) kaldırarak OEIS sıra adlarını gruplayarak diğer potansiyel öbekler için kategoriler. Görünüş sayısına göre sıralanırlar.

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

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

Dan İşleri 8585 aracılığıyla (3 katları) 8607 (25 katları) ve 1018 boyunca (8 güçler) 1029 (19 güçler). Elverişli bir şekilde, bunlar kimliğe göre sipariş edilen bir yığın halindedir.

Bu, izin verilen 100 bayttan yalnızca 65 tanesini kullanır ve henüz tam olarak golf oynamamıştır, bu yüzden başka bir güzel yığın arayacağım.


haha, güzel olan!
Maltysen

ayrıca, daha kısa:lambda n:range(0,(n-8582)*20,n-8582)
Maltysen

@Maltysen Spec programı söyledi, ben de onunla gittim. Soracağım.
xnor

2
İyi fikir, ama 21016-21999 aralığının tamamen karşılıklı olmasına dayandığını sanmıyorum. Örneğin, A21021 1, 33, 727, 13365, 221431, 3428733, ... şeklindedir, 1/17 ondalık basamak değildir. Hangi dizilerin karşılıklı olduğunu ve hangilerinin olmadığını kontrol etmedim.
Mitchell Spector

1
@xnor Ancak birçok eşleşme elde edersek, sayıma 252 eklemek için cevabımla birleştirebilirsiniz: giriş 21016-21999 aralığında değilse, çıkış 20 0'lar. (252 dizilerimin hiçbiri bu aralıkta değil.)
Mitchell Spector

29

Bash + coreutils, 252 dizileri

yes 0|head -20

Çevrimiçi deneyin!

252 OEIS dizileri üzerinde İşleri: A000004, A006983, A011734, A011735, A011736, A011737, A011738, A011739, A011740, A011741, A011742, A011743, A011744, A011745, A023975, A023976, A025438, A025439, A025443, A025444, A025466, A025469, A034422, A034423, A034427, A034429, A034432, A034435, A034437, A034438, A034439, A034449, A034443, A034445, A034447, A034449, A034445, A034450, A034450. A034462, A034464, A034465, A034466, A034467, A034468, A034469, A034448, A034473, A034475, A0444876, A034448, A034479, A034480, A034481, A044482, A0444879, A0344878 A034495, A034497, A034498, A034499, A034500, A034501, A034502, A034503, A034504, A034505, A034506, A034507, A034508, A034509, A034550, A045508, A034509;A034518, 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, A034559, A034556, A034557, A034558, A034555, A034560, A034555, A034558, A034555, A034560, A034560, A034555, A034555, A034560, A034560, A034555, A034555, A034555, A034560, A034560, A034555, A034555, A034560, A034560, A034555, A034555, A034560, A034560, A0345, A0345, A0345, A0345, A0345, A0345 A A034569, A04580, A034570, A034571, A034572, A034573, A034574, A034575, A034576, A034577, A034578, A034579, A034575, A034581, A034582, A045861, A0457580, A034581, A034578 A070204, A070205, A070206, A072325, A072769, A076142, A082998, A083344, A085974, A085982, A086007, A086015, A089458, A093392, A094382, A186015, A089458.A111899, A118802, A122180, A129947. A1852535, A185264, A185284, A191928, A192541, A197629, A198255, A200214, A206499, A210632, A212619, A217156, A217149, A217151, A217155, A217156 A243831, A243832, A243833, A243834, A243835, A243836, A248805, A250002, A256974, A260502, A264668, A276183, A277165, A280492, A280815 sayılı belge.A198255, A200214, A206499, A210632, A212619, A217148, A217149, A217151, A217155, A217156, A228953, A230533, A230686, A235044; A248805, A250002, A256974, A260502, A264668, A276183, A277165, A280492, A280815 sayılı belge.A198255, A200214, A206499, A210632, A212619, A217148, A217149, A217151, A217155, A217156, A228953, A230533, A230686, A235044; A248805, A250002, A256974, A260502, A264668, A276183, A277165, A280492, A280815 sayılı belge.


4
Heh, sevimli fikir!
Jonathan Allan,

12

Python (sempati içinde), 144 146 dizisi

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

İşlev f, A016578 - A016723 dahil 146 dizileri için çalışır .

Bunların hepsi repl.it'teki test kablo demeti tarafından verilir .

49 dizileri A016578 aracılığıyla A016626 log (3/2), log (5/2), log (7/2), ..., log (99/2) ondalık açılımları olan kapsayıcı.

97 dizileri A016627 ile A016723 log (4), log (5), log (6) ondalık açılımları olan herşey, ..., log (100).

İlk iki arasında 49 onlar için günlük değerler yana ilk ondalık yerde başından az olan 1 böylece, [-20:]yapılan çağrı sonuçlarının sondaki 20 ondalık basamağı sürer ...n(20)20 önemli rakamlar hangi alır. if'.'<cOndalık basamak karakteri dışarı filtreler ve int(c)tam sayıya atmalarını kalan her basamaklı karakteri (her ne kadar belki gerekli değildir).


10

Jelly, 1127 1975 dizileri

- Bu şu anda xnor ve Mitchell Spector'un bulgularını birleştiriyor , ancak hala 78 baytlık bir büyüme alanı var. Git onlara biraz kredi ver!

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

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

TryItOnline!

1975 dizileri:

  • yirmi sıfır ile başlayan 252 (dışarıdaki girdilerin davranışı [16000,21999]);
  • formül ile eşleşen 16742 ila 17664 aralığında yer alan 848 sekans (a*n+b)**c(giriş için davranış [16000,17999]); ve
  • 875 dizileri , ondalık genişlemesine uyan (giriş için davranış ) 21016 ile 21999 arasında uzanmaktadır .1/n[18000,21999]

Nasıl?

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 dizileri

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

Jonathan Allan'ın cevabından ilham aldı .

İçin çalışıyor:

  • 1477 , 2837 , 4830 ve 8554 (bunların ilk 20 terimi {0, 1, 2, ... , 19})
  • 16578 -e doğru 16626 (log (3/2 ondalık açılımı), log ondalık açılımı (5/2), ... log ondalık açılımı (99/2))
  • 16627 -e doğru 16.723 (log (4 ondalık açılımı), log ondalık açılımı (5), ... log ondalık açılımı (100))
  • 22958 bulundunuz 22996 (2-n, 3-N, ... 40-n)

6

CJam, 1831 dizileri

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

Bu 199 başlayan dizileri için doğru çıkış verir 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0ve kapsayıcı aralıkları tüm dizileri [A168680, A169579]ve [A170000, A170731]. Bunun büyük kısmı, ilk aralığın başlangıcından önce sıfırlar için bir geri dönüş ile bu iki aralık ile ilgilidir.

Söz konusu iki alan formdadır.

nPSben(Sben)2=(SbenSj)S=ben

3 arasında değişen değerleri içinP350S1750(t-1)

tS+1+tS-t-112(P-2)(P-1)tS+1-12(P-2)(P+1)tS+(P-1)t-1
R,=P+3

1

Toplu, 62 dizileri

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

Sadece bir sıra bloğu uygulamak zordu ama 89 baytta iki tanesini başardım! Açıklama: %18585-8607 parametresi için , sıfırı 22956-%1>>16döndürür, (22956-%1)ifadeyi yoksaymaya neden olur ve döngü değişkenini sırasıyla 3-25 ile çarpma işlemine son veririz; Etkisiz n|bir şekilde döngü değişkenini çıkarırken çarpım faktörünün eksi ile değiştirilmesine neden olurken, olumsuzlanır .


1
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.