Polinomi autoreferenziali


12

Per ogni dato grado nè possibile costruire (almeno uno) un polinomio integrale ptale che p(k)( pvalutato in k) sia il coefficiente del termine x^knel polinomio per tutti 0 <= k <= n. Per renderli unici, abbiamo bisogno che il coefficiente principale (il coefficiente di x^n) sia positivo e minimo.

Questi polinomi hanno alcune proprietà interessanti, puoi trovare alcuni riferimenti nel thread che mi hanno ispirato a fare questa sfida . Puoi anche trovare quei polinomi in https://oeis.org/A103423

Una delle proprietà inaspettate a priori è il comportamento delle radici in base a n:

inserisci qui la descrizione dell'immagine

fonte (di / u / zorngov e / u / EpicSauceSc2)

Compito

Dato un noutput intero non negativo , il polinomio integrale autoreferenziale di grado ncon un coefficiente iniziale positivo minimo.

Dettagli

L'output può essere in qualsiasi forma leggibile, come stringa x^2-x-1o anche come un elenco di coefficienti [1,-1,-1]. (L'ordine dei coefficienti può anche essere il contrario, deve solo essere coerente.)

Prime uscite

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 

Complimenti per il tuo badge d'oro!
Luis Mendo,

@LuisMendo Grazie, apparentemente sono un fanatico.
flawr

Risposte:


2

Sage , 74 byte

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

L' -ie [-n..0]potrebbe essere ie [0..n], se non per il requisito del coefficiente principale positivo.

Provalo su Sage Cell


2

Mathematica, 55 byte

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

L'output è il coefficiente di elenco, a partire dal termine costante. Esempio:

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

Questo trova semplicemente il vettore tale che (A - I)v = 0, simile al codice MAPLE in OEIS. Il NullSpacemetodo sembra scegliere sempre il numero positivo minimo per l'ultimo elemento, che corrisponde alla descrizione dell'attività.

L'indirizzamento x^c-…/.x->rindiretto è di evitare di avere 0^0 == Indeterminate.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.