Diziyi Değiştir


9

Göreviniz OEIS dizisi çıktısı veren ve kodun ( A______) içindeki dizinin adını içeren bir kod yazmaktır . Yeterince kolay değil mi? İşte yakalama, koddaki dizinin adı ikinci dizinin adı olarak değiştiğinde, kodunuzun ikinci bir ayrı diziyi de çıkarması gerekir.

Giriş çıkış

İşletme kodu alan bir fonksiyon ya da tam bir program olabilir , n , standart bir giriş yöntemi ile ve çıkışlar n OEIS sayfasında sağlanan indeksi dizinlenen şekilde dizisinin inci terimi.

Bu sekans için OEIS b dosyalarında sağlanan tüm değerleri desteklemeniz gerekir, b dosyalarında olmayan herhangi bir sayı desteklenmez.

puanlama

Bu . Puanınız kodunuzdaki bayt sayısı olacaktır ve daha az bayt daha iyi olacaktır.

Misal

İşte Haskell'de A000217 ve A000290 için çalışan bir örnek.

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

Çevrimiçi deneyin!


Açıklığa kavuşturmak için: Kodunuz, dizinin adını o kodun bir kısmına yerleştirdiğinizde o dizinin sayısını çıkaracak iki dizi için mi çalışmalıdır?
HyperNeutrino

@HyperNeutrino Evet. Dizinin adı ikame edildiğinde, programın işlevini ikinci dizi olarak değiştirmelidir.
Ad Hoc Garf Hunter

1
Koddaki dizilerin başında sıfır olması gerekir.
pppery

@ppperry Evet olmalı.
Ad Hoc Garf Hunter

1
Is Agerekli?
Okx

Yanıtlar:


8

JavaScript (ES6), 16 15 bayt

n=>4&~0xA000004

A000004 (tümü 0) ve A010709 (tümü 4s) ile çalışır.

Önceki 17 baytlık çözüm A010850 - A010859 dahil olmak üzere çalışır:

n=>~-0xA010850%36

Önceki 25 baytlık çözüm A010850 - A010871 dahil olmak üzere çalışır:

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

Bu sadece gösteriş yapıyor (
OEIS'in

Garip - iki cevap 25 baytta başladı ve her ikisi de dakikada 17 bayta
golf oynadı

@ppperry Heh, ama cevabınızı taşıyabilirdim ve sadece 15 bayt olurdu ...
Neil

JS Jelly ile mi bağlandı ?! Çok güzel bitti
Shaggy

@Shaggy Nope; yeni bir kısa jöle cevabı gönderildi.
pppery



3

cQuents , 16 bayt

=A000007//5#|A:0

Çevrimiçi deneyin! , A000007 ,1,0,0,0,0...

=A000004//5#|A:0

Çevrimiçi deneyin! , A000004 ,0,0,0,0,0...

açıklama

                    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'a 4//5 = 0ve için teşekkürler 7//5 = 1.

Eğer spec daha esnek olsaydı O7A$ve olurdu O4A$.



2

dc , 13 bayt

Düzenleme: Görünüşe göre OEIS 0th th th güçleri listeler 30- Ben sadece bu dizileri üzerinde bir arama yaptım ve orijinal 13bayt çözüm en golfçü çıkıyor. Ama sadece 1bayt için 9diziler için çalışan başka bir çözüm buldum .

A000012 için çözüm (sabit 1'in sırası):

?A000012 4%^p

Çevrimiçi deneyin!

A001477 için çözüm (negatif olmayan tamsayılar):

?A001477 4%^p

Çevrimiçi deneyin!

A000290 için çözüm (mükemmel kareler dizisi):

?A000290 4%^p

Çevrimiçi deneyin!

Ungolfed / Açıklama

Bu çözümler, aslında faydalanmak dc, yorumlanması Aolarak 10, bu A001477değer haline gelir 10001477. Bundan başka, diziler olduğu kullanan n^0, n^1ve n^2denk olan 10000012 % 4 == 0, 10001477 % 4 == 1ve 10000290 % 4 == 2.

Yani bu diziler 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 sekans için 14 bayt solüsyonu

Fikir hala aynı, bu sefer % 97doğru gücü elde etmek için bir yapmamız gerekiyor - A010801 , A010802 , A010803 , A010804 , A010805 , A010806 , A010807 , A010808 ve A010809 dizileri için çalışıyor (bunlar diziler n^13, .. ., n^21).

İlki:

?A010801 97%^p

Çevrimiçi deneyin!


1
İkiden fazla diziyi desteklemek için +1!
Neil

1

Python 2, 25 17 bayt

print'A000012'[5]

A000004 ve A000012 için çalışır. (dizilerin tümü sabit terimler olduğundan giriş yoksayılır).


1

Befunge 98, 10 bayt

#A000012$q

Ayrıca A000004 için de çalışır. Çıkış kodu ile çıktı.


1

Jöle , 17 bayt

“A000578”OS%⁵ạ6*@

Çevrimiçi deneyin!

“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 ile de çalışır


Sabit olmayan diziler kullanarak iyi iş.
AdmBorkBork

1

PowerShell , 23 bayt

+(0xA000012-eq160mb+18)

Çevrimiçi deneyin!

Kullanım A000012 (tamamen birli dizi) ve A000004 (tamamen sıfırlı dizisi).

Birkaç düzgün hileden yararlanır. 0xOnları bize veren sıraya onaltılık operatör olarak kullanıyoruz 167772178. Bu onun olmadığını görmek kıyasla oluyor -eqUAL için 160mb+18kullanan mboperatör ( 160mbolan 167772160). Bu Boolean sonucu daha sonra +doğru 1veya değerini çıkarmak için bir int olarak verilir 0. Not, herhangi A000012 dışında kod dizisi ile sonuçlanır 0çıkış olmak.


1

Neim , 10 9 bayt

A000012ᛄ>

Açıklama:

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

A000012 (tümü) ve A007395 (tümü iki)

Girişi yığının üstüne alan ve çıktıyı yığının üstüne bırakan bir işlev.

Çevrimiçi deneyin!


0

Gaia , 9 bayt

A000012₉/

A000012 ve A000004 ile çalışır .

A000012'yi deneyin!

A000004'ü deneyin!

açıklama

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

Neden herkes A00004 ve A00012 yayınlamaya devam ediyor?
pppery

@ppperry A000004 sıfır dizisidir ve A000012 olanlar dizisidir. Sadece sayıları 9'a bölün ve sonucu sonsuza kadar çıktı.
Mühendis Tost






0

Kabuk , 20 bayt

Bu biraz daha ilginç diziler döndürür, yine çözümler 1-indekslenir.

Bu A000040 (asal sayılar) için çalışır :

!!i→"A000040"e:0İfİp

Çevrimiçi deneyin!

Ve bu A000045 (Fibonacci sayıları) için:

!!i→"A000045"e:0İfİp

Çevrimiçi deneyin!

açıklama

Bu, sıra adlarının son basamağının farklı bir pariteye sahip olması gerçeğinden yararlanır:

                      -- 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 bayt

a:=SubStr("A000004",6)//9
Loop
Send %a%,

Çıktı: 0,0,0,0,0,0,0,0,0,0,0,0,...

a:=SubStr("A000012",6)//9
Loop
Send %a%,

Çıktı: 1,1,1,1,1,1,1,1,1,1,1,1,...

Bu en kısa kod olmayabilir ama eminim bulabileceğimiz en kısa dizi çifti. A000004 sıfır dizisidir ve A000012 olanlar dizisidir. Sadece sayıları 9'a bölün ve sonucu sonsuza kadar çıktı.


0

QBIC , 28 bayt

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

Bu A000034 (1, 2, 1, 2, 1 ...) ve A000035 (0, 1, 0, 1, 0, 1 ...) dizileri arasında geçiş yapar

açıklama

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

Kabuk , 16 bayt

Her iki çözelti 1-dekslenir.

Bu A000351 ( 5'in gücü) için çalışır :

!¡*i!6"A000351"1

Çevrimiçi deneyin!

Ve bu A000007 için ( 0'ın gücü):

!¡*i!6"A000007"1

Çevrimiçi deneyin!

açıklama

A000351 , A000007 adlarının 6 konumunda sağ D basamağını içerdiğinden, sıra şu şekilde kullanılır 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

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.