Polynômes réduits modulo
Publié : jeu. avr. 23, 2015 9:13 am
Bonjour.
Sur le fil "Problèmes avec les polynômes", alb m'a indiqué ce programme pour calculer certains polynômes définis par récurrence :
Polynomes(n):={
local P,k;
P:=1;
pour k de 3 jusque n faire
P:=diff(P*(x^2+x));
fpour
retourne normal(P)
}:;
à faire suivre de la commande :
seq([n,Polynomes(n)],n,3,7)
(J'ai changé la numérotation des polynômes.)
Cela marche comme souhaité. Cependant, quand je calculerai ainsi certains polynômes définis par récurrence, je n'aurai besoin de connaître leurs coefficients que modulo un certain nombre premier. Comme ces coefficients, non réduits modulo, deviennent vite astronomiques, je suppose que je ferai gagner du temps et de la mémoire au programme en lui faisant faire tous les calculs modulo ce nombre premier.
En ligne de commande, ceci réussit :
P:=x%11
1%11x
normal(P*((x^2+x)%11) )
1%11x3+1%11x2
mais le programme suivant, où j'ai simplement essayé de remplacer les polynômes par leurs réduits modulo 11 dans le programme d'alb ci-dessus, ne réussit pas :
Polynomes(n):={
local P,k;
P:=1%11;
pour k de 3 jusque n faire
P:=diff(P*((x^2+x)%11));
fpour
retourne normal(P)
}:;
Si après ce programme (qui renvoie "Done"), on tape la commande
seq([n,Polynomes(n)],n,3,7)
on reçoit une liste de polynômes dont les coefficients sont écrits sous forme décimale et ne correspondent pas aux valeurs attendues.
Ce programme-ci ne réussit pas non plus, il donne le même résultat :
Polynomes(n):={
local P,k;
P:=1%11;
pour k de 3 jusque n faire
P:=diff(P*(1%11 x^2 + 1%11 x));
fpour
retourne normal(P)
}:;
Quelqu'un peut-il m'aider ? Merci d'avance.
C.
Sur le fil "Problèmes avec les polynômes", alb m'a indiqué ce programme pour calculer certains polynômes définis par récurrence :
Polynomes(n):={
local P,k;
P:=1;
pour k de 3 jusque n faire
P:=diff(P*(x^2+x));
fpour
retourne normal(P)
}:;
à faire suivre de la commande :
seq([n,Polynomes(n)],n,3,7)
(J'ai changé la numérotation des polynômes.)
Cela marche comme souhaité. Cependant, quand je calculerai ainsi certains polynômes définis par récurrence, je n'aurai besoin de connaître leurs coefficients que modulo un certain nombre premier. Comme ces coefficients, non réduits modulo, deviennent vite astronomiques, je suppose que je ferai gagner du temps et de la mémoire au programme en lui faisant faire tous les calculs modulo ce nombre premier.
En ligne de commande, ceci réussit :
P:=x%11
1%11x
normal(P*((x^2+x)%11) )
1%11x3+1%11x2
mais le programme suivant, où j'ai simplement essayé de remplacer les polynômes par leurs réduits modulo 11 dans le programme d'alb ci-dessus, ne réussit pas :
Polynomes(n):={
local P,k;
P:=1%11;
pour k de 3 jusque n faire
P:=diff(P*((x^2+x)%11));
fpour
retourne normal(P)
}:;
Si après ce programme (qui renvoie "Done"), on tape la commande
seq([n,Polynomes(n)],n,3,7)
on reçoit une liste de polynômes dont les coefficients sont écrits sous forme décimale et ne correspondent pas aux valeurs attendues.
Ce programme-ci ne réussit pas non plus, il donne le même résultat :
Polynomes(n):={
local P,k;
P:=1%11;
pour k de 3 jusque n faire
P:=diff(P*(1%11 x^2 + 1%11 x));
fpour
retourne normal(P)
}:;
Quelqu'un peut-il m'aider ? Merci d'avance.
C.