Bonjour,
est-il possible de calculer la valuation p-adique d'un entier relatif sans passer par la factorisation complète qui est très gourmande en temps?
Merci d'avance.
Valuation p-adique
Modérateur : xcasadmin
Re: Valuation p-adique
Il suffit de faire un petit programme du style
Code : Tout sélectionner
valu(n,p):={ local v:=0; tantque irem(n,p)=0 faire n=n/p; v++; ftantque; return v;}
Re: Valuation p-adique
Merci c'est que j'avais fait en attendant qu'il y est une fonction native dans XCas...
En fait, ce message était pour savoir si elle ne pourrait pas être implémentée dans Xcas.
Je l'avais codée comme ceci: penses-tu qu'elle est moins rapide que ta fonction?
En fait, ce message était pour savoir si elle ne pourrait pas être implémentée dans Xcas.
Je l'avais codée comme ceci: penses-tu qu'elle est moins rapide que ta fonction?
Code : Tout sélectionner
v(n,p):= {b:=0;tantque n mod p^b==0 faire b:=b+1; ftantque; return b-1;};
Re: Valuation p-adique
Pas pour de petites valuations, car je fais deux divisions par iteration. Je pourrais optimiser en utilisant iquorem, et ca serait alors un peu plus rapide lorsque la valuation est grande, parce qu'en divisant par p, on diminue la taille des arguments alors que votre version travaille toujours avec n et un entier de taille croissante, a quoi il faut ajouter le temps de calcul de p^b.
Une version native serait un peu plus rapide, en appelant directement les fonctions de la libgmp sans mettre les quotients intermediaires dans des giac::gen. Mais pas enormement plus rapide, peut-etre un facteur 2 ou 3.
Une version native serait un peu plus rapide, en appelant directement les fonctions de la libgmp sans mettre les quotients intermediaires dans des giac::gen. Mais pas enormement plus rapide, peut-etre un facteur 2 ou 3.
Re: Valuation p-adique
Penses-tu l'implémenter en native? Elle est vraiment pratique cette fonction.
Re: Valuation p-adique
Ok, j'ajoute cette fonctionnalite a la commande valuation.
Re: Valuation p-adique
Super!! Merci