Невідновлювані многочлени над GF (5)


13

Поліном з коефіцієнтами в деякому полі F називається непріводімим над F , якщо вона не може бути розкладена на витвір многочленів нижчих ступенів з коефіцієнтами з F .

Розглянемо многочлени над полем Галуа GF (5). Це поле містить 5 елементів, а саме числа 0, 1, 2, 3 і 4.

Завдання

З огляду на додатне ціле число n , обчисліть кількість невідворотних поліномів ступеня n над GF (5). Це просто многочлени з коефіцієнтами 0-4, які не можна перерахувати на інші многочлени з коефіцієнтами 0-4.

Вхідні дані

Вхід буде єдиним цілим числом і може надходити з будь-якого стандартного джерела (наприклад, STDIN або аргументи функції). Ви повинні підтримувати вхід до найбільшого цілого числа, щоб результат не переповнювався.

Вихідні дані

Роздрукуйте або поверніть кількість поліномів, невідмінних за GF (5). Зауважте, що ці цифри досить великі.

Приклади

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

Зауважте, що ці числа утворюють послідовність A001692 в OEIS.


PARI / GP 46 байт на A001692;) Чи є обмеження в часі?
ბიმო

@Bruce_Forte Nope.
Олексій А.

Відповіді:


9

Желе , 30 23 22 20 байт

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

Спробуйте в Інтернеті! або перевірити всі тестові справи одразу .

Алгоритм

Для цього використовується формула

формула

зі сторінки OEIS, де d | п вказує на те, що підсумовування за всіма подільники d з п , а μ являє собою функцію Мебіуса .

Код

Æ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
Я люблю ці відповіді від Jelly на жорстку математику! :)

3

Математика, 39 38 байт

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

Використовується та ж формула, що і відповідь Желе.


+1, щоб навчити мене про оператора з іменованою функцією, але я думаю, що цей байт коротший без:DivisorSum[n=#,5^(n/#)MoebiusMu@#/n&]&
Мартін Ендер

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.