GF üzerinden indirgenemez polinomlar (5)


13

Bazı katsayılı bir polinom alan F denir indirgenemez üzerinde F içeri katsayıları ile alt derece polinomların ürüne edilememiştir eğer F .

Galois alanı GF (5) üzerindeki polinomları düşünün . Bu alan, 0, 1, 2, 3 ve 4 sayıları olmak üzere 5 öğe içerir.

Görev

Pozitif bir n tamsayısı verildiğinde , GF üzerinden n derecesinin indirgenemez polinomlarının sayısını hesaplayın (5). Bunlar sadece 0-4 arasında katsayıları olan polinomlardır ve bunlar 0-4'te katsayıları olan diğer polinomlara dahil edilemez.

Giriş

Giriş tek bir tamsayı olacaktır ve herhangi bir standart kaynaktan gelebilir (örn. STDIN veya işlev bağımsız değişkenleri). Çıkışın taşmaması için en büyük tamsayıya kadar girişi desteklemelisiniz.

Çıktı

GF üzerinden indirgenemeyen polinom sayısını yazdırın veya geri gönderin (5). Bu sayıların oldukça hızlı büyüdüğünü unutmayın.

Örnekler

In : Out
 1 : 5
 2 : 10
 3 : 40
 4 : 150
 5 : 624
 6 : 2580
 7 : 11160
 8 : 48750
 9 : 217000
10 : 976248
11 : 4438920

Bu sayıların OEIS'de A001692 dizisini oluşturduğuna dikkat edin .


A001692'de PARI / GP 46 bayt;) Zaman sınırı var mı?
ბიმო

@Bruce_Forte Hayır.
Alex A.

Yanıtlar:


9

Jöle , 30 23 22 20 bayt

ÆF>1’PḄ
ÆDµU5*×Ç€S:Ṫ

Çevrimiçi deneyin! veya tüm test senaryolarını bir kerede doğrulayın .

Algoritma

Bu formülü kullanır

formül

OEIS sayfasından, burada d | n, tüm bölenler üzerinde toplanacak gösterir d arasında n ve μ temsil Möbius fonksiyonu .

kod

ÆF>1’PḄ       Monadic helper link. Argument: d
              This link computes the Möbius function of d.

ÆF            Factor d into prime-exponent pairs.
  >1          Compare each prime and exponent with 1. Returns 1 or 0.
    ’         Decrement each Boolean, resulting in 0 or -1.
     P        Take the product of all Booleans, for both primes and exponents.
      Ḅ       Convert from base 2 to integer. This is a sneaky way to map [0, b] to
              b and [] to 0.

ÆDµU5*×Ç€S:Ṫ  Main link. Input: n

ÆD            Compute all divisors of n.
  µ           Begin a new, monadic chain. Argument: divisors of n
   U          Reverse the divisors, effectively computing n/d for each divisor d.
              Compute 5 ** (n/d) for each n/d.

       ǀ     Map the helper link over the (ascending) divisors.
      ×       Multiply the powers by the results from Ç.
         S    Add the resulting products.
          Ṫ   Divide the sum by the last divisor (n).

1
Sert jöle için bu Jelly cevaplarını seviyorum! :)

3

Mathematica, 39 38 bayt

DivisorSum[a=#,5^(a/#)MoebiusMu@#/a&]&

Jelly cevabı ile aynı formülü kullanır.


Adlı fonksiyonlu operatörü hakkında öğrettiğin için 1, ama olmadan bir bayt daha kısa olduğunu düşünüyorum:DivisorSum[n=#,5^(n/#)MoebiusMu@#/n&]&
Martin Ender

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.