Wielomiany z referencjami

12

Dla każdego danego stopnia nmożliwe jest skonstruowanie (co najmniej jednego) integralnego wielomianu ptak, że p(k)( pobliczony w k) jest współczynnikiem tego terminu x^kw wielomianie dla wszystkich 0 <= k <= n. Aby były wyjątkowe, wymagamy, aby wiodący współczynnik (współczynnik x^n) był dodatni i minimalny.

Te wielomiany mają kilka interesujących właściwości, możesz znaleźć odniesienia w wątku, który zainspirował mnie do tego wyzwania . Te wielomiany można również znaleźć na stronie https://oeis.org/A103423

Jedną z nieoczekiwanych właściwości a priori jest zachowanie korzeni w zależności od n:

wprowadź opis zdjęcia tutaj

źródło (autor: / u / zorngov i / u / EpicSauceSc2)

Zadanie

Biorąc pod uwagę nieujemną liczbę całkowitą, ncałkujący się wielomian stopniowy nz minimalnym dodatnim współczynnikiem wiodącym.

Detale

Dane wyjściowe mogą być w dowolnej postaci czytelnej dla człowieka, w postaci ciągu x^2-x-1lub też jako lista współczynników [1,-1,-1]. (Kolejność współczynników może być również odwrotna, po prostu musi być spójna).

Pierwsze kilka wyników

n=0: 1
n=1: x
n=2: x^2-x-1
n=3: 10*x^3-29*x^2-6*x+19
n=4: 57*x^4-325*x^3+287*x^2+423*x-19
n=5: 12813*x^5-120862*x^4+291323*x^3+44088*x^2-355855*x-227362 
wada
źródło
Gratulujemy złotej odznaki!
Luis Mendo
@LuisMendo Dzięki, najwyraźniej jestem fanatykiem.
flawr

Odpowiedzi:

2

Sage , 74 bajty

lambda n:kernel(matrix(n+1,[j^-i-(-i==j)for i in[-n..0]for j in[0..n]])).0

-iI [-n..0]może być ii [0..n], jeśli nie dla dodatniego współczynnika wiodącym wymogu.

Wypróbuj na Sage Cell

Anders Kaseorg
źródło
2

Mathematica, 55 bajtów

NullSpace@Table[x^c-Boole[r==c]/.x->r,{r,0,#},{c,0,#}]&

Dane wyjściowe to współczynniki listy, poczynając od stałego składnika. Przykład:

In[1084] := Do[Print[%1077[n] // StandardForm], {n, 0, 7}]

{{1}}

{{0,1}}

{{-1,-1,1}}

{{19,-6,-29,10}}

{{-19,423,287,-325,57}}

{{-227362,-355855,44088,291323,-120862,12813}}

{{145991969,64989065,-123338281,-85635661,79841909,-18146731,1286795}}

{{-5958511844199,3384370785404,8437850634901,489428412300,-4499161007143,1776194531596,-258931801371,13131073916}}

To po prostu znajduje wektor taki, że (A - I)v = 0podobny do kodu MAPLE w OEIS. NullSpaceMetoda wydaje się zawsze podnieść minimalną liczbę dodatnią dla ostatniego elementu, który pasuje do opisu zadań.

x^c-…/.x->rPośrednie jest, aby zapobiec konieczności 0^0 == Indeterminate.

kennytm
źródło