logo

Décomposition en facteurs premier en maple


« Précédent 1 2 3 Suivant » +


re : Décomposition en facteurs premier en maple#msg796768 Posté le 16-12-06 à 00:21
Posté par Profilvincprof vincprof

> dfp2:=proc(a)
> k:=0;a1:=a;
> P:=array(1..a1);N:=array(1..a1);
> for i from 2 to a do
> P[i]:=0;
> N[i]:=0;
> od;
> for i from 2 to evalf(sqrt(a1)) do
> if evalb((a1 mod i)=0)=true then
>    k:=k+1;
>    while evalb(a1 mod i=0)=true do
>       P[k]:=i;
>       N[k]:=N[k]+1;
>       a1:=a1/i;
>    od;
> fi;
> od;
> k:=k+1;
> P[k]=a;
> N[k]=1;
> RETURN(P[1])
> end:

>
>
>
>
Warning, `k` is implicitly declared local to procedure `dfp2`

Warning, `a1` is implicitly declared local to procedure `dfp2`

Warning, `P` is implicitly declared local to procedure `dfp2`

Warning, `N` is implicitly declared local to procedure `dfp2`

Warning, `i` is implicitly declared local to procedure `dfp2`

> dfp2(10);
>

                                  2

> dfp2(5);
>

                                 P[1]

il y a toujours un problème!!!
re : Décomposition en facteurs premier en maple#msg796769 Posté le 16-12-06 à 00:23
Posté par ProfilRouliane Rouliane

Je te disais pas de tout mettre ...

tappe ça :

> dfp2:=proc(a)
> k:=0; global a1:=a;
> P:=array(1..a1);N:=array(1..a1);
> for i from 2 to a do
> P[i]:=0;
> N[i]:=0;
> od;
> > RETURN(P[1]);
> end;
re : Décomposition en facteurs premier en maple#msg796770 Posté le 16-12-06 à 00:24
Posté par Profilvincprof vincprof

> dfp2:=proc(a)
> k:=0;a1:=a;
> P:=array(1..a1);N:=array(1..a1);
> for i from 2 to a do
> P[i]:=0;
> N[i]:=0;
> od;
> for i from 2 to evalf(sqrt(a1)) do
> if evalb((a1 mod i)=0)=true then
>    k:=k+1;
>    while evalb(a1 mod i=0)=true do
>       P[k]:=i;
>       N[k]:=N[k]+1;
>       a1:=a1/i;
>    od;
> fi;
> od;
> k:=k+1;
> P[k]=a;
> N[k]=1;
> RETURN(P[1])
> end:

>
>
>
>
Warning, `k` is implicitly declared local to procedure `dfp2`

Warning, `a1` is implicitly declared local to procedure `dfp2`

Warning, `P` is implicitly declared local to procedure `dfp2`

Warning, `N` is implicitly declared local to procedure `dfp2`

Warning, `i` is implicitly declared local to procedure `dfp2`

> dfp2(10);
>

                                  2

> dfp2(5);
>

                                 P[1]
re : Décomposition en facteurs premier en maple#msg796771 Posté le 16-12-06 à 00:25
Posté par Profilvincprof vincprof

désolé j'ai cru que ct pa partis...
re : Décomposition en facteurs premier en maple#msg796772 Posté le 16-12-06 à 00:27
Posté par Profilvincprof vincprof

> dfp3:=proc(a)
>  k:=0; a1:=a;
>  P:=array(1..a1);N:=array(1..a1);
>  for i from 2 to a do
>  P[i]:=0;
>  N[i]:=0;
>  od;
>  RETURN(P[1]);
>  end;
Warning, `k` is implicitly declared local to procedure `dfp3`

Warning, `a1` is implicitly declared local to procedure `dfp3`

Warning, `P` is implicitly declared local to procedure `dfp3`

Warning, `N` is implicitly declared local to procedure `dfp3`

Warning, `i` is implicitly declared local to procedure `dfp3`


  dfp3 := proc(a)
local k, a1, P, N, i;
    k := 0;
    a1 := a;
    P := array(1 .. a1);
    N := array(1 .. a1);
    for i from 2 to a do P[i] := 0; N[i] := 0 end do;
    RETURN(P[1])
end proc

> dfp3(10);

                                 P[1]
re : Décomposition en facteurs premier en maple#msg796773 Posté le 16-12-06 à 00:28
Posté par ProfilRouliane Rouliane

dans la boucle for, le i commence à 1 et pas 2.

for i from 1 ...
re : Décomposition en facteurs premier en maple#msg796774 Posté le 16-12-06 à 00:29
Posté par Profilvincprof vincprof

la petite parti avant le "résultat"  de dfp3(10) ou tout le programme est répété est due au ";" après "end".
re : Décomposition en facteurs premier en maple#msg796775 Posté le 16-12-06 à 00:30
Posté par ProfilRouliane Rouliane

ok met : alors
re : Décomposition en facteurs premier en maple#msg796776 Posté le 16-12-06 à 00:31
Posté par Profilvincprof vincprof

dfp3:=proc(a)
>  k:=0; a1:=a;
>  P:=array(1..a1);N:=array(1..a1);
>  for i from 1 to a do
>  P[i]:=0;
>  N[i]:=0;
>  od;
>  RETURN(P[1]);
>  end:Warning, `k` is implicitly declared local to procedure `dfp3`

Warning, `a1` is implicitly declared local to procedure `dfp3`

Warning, `P` is implicitly declared local to procedure `dfp3`

Warning, `N` is implicitly declared local to procedure `dfp3`

Warning, `i` is implicitly declared local to procedure `dfp3`

> dfp3(10);

                                  0
re : Décomposition en facteurs premier en maple#msg796777 Posté le 16-12-06 à 00:32
Posté par Profilvincprof vincprof

c'est mieux déjà...
re : Décomposition en facteurs premier en maple#msg796779 Posté le 16-12-06 à 00:33
Posté par Profilvincprof vincprof

pour suistrop : je cherche a la fin a obtenir la liste des nombres qui ne sont pas solutions de n'=a...
re : Décomposition en facteurs premier en maple#msg796782 Posté le 16-12-06 à 00:34
Posté par ProfilRouliane Rouliane

ok, rajoute maintenant toute la boucle for ...

( et dans le while il manque des parenthèses : evalb((a1 mod i)=0)=true
re : Décomposition en facteurs premier en maple#msg796784 Posté le 16-12-06 à 00:35
Posté par ProfilRouliane Rouliane

while evalb((a1 mod i)=0)=true
re : Décomposition en facteurs premier en maple#msg796787 Posté le 16-12-06 à 00:39
Posté par Profilvincprof vincprof

en fait j'ai remplacé 2 par 1 dans dfp2 et tout marche a merveille.
Merci bcp.
re : Décomposition en facteurs premier en maple#msg796788 Posté le 16-12-06 à 00:41
Posté par ProfilRouliane Rouliane

c'est pas parce que le programme tourne que tout marche.

teste le programme pour a=20 et vérifie que :
P[1]=2
N[1]=2  ( c'est l'exposant de 2 )
P[2]=5

met en fi de programme un RETURN ( P[1],N[1], P[2]);
re : Décomposition en facteurs premier en maple#msg796793 Posté le 16-12-06 à 00:49
Posté par Profilvincprof vincprof

> dfp2:=proc(a,s)
> k:=0;a1:=a;
> P:=array(1..a1);N:=array(1..a1);
> for i from 1 to a do
> P[i]:=0;
> N[i]:=0;
> od;
> for i from 2 to evalf(sqrt(a1)) do
> if evalb((a1 mod i)=0)=true then
>    k:=k+1;
>    while evalb((a1 mod i)=0)=true do
>       P[k]:=i;
>       N[k]:=N[k]+1;
>       a1:=a1/i;
>    od;
> fi;
> od;
> k:=k+1;
> P[k]=a;
> N[k]=1;
> RETURN(P[s],N[s])
> end:

>
Warning, `k` is implicitly declared local to procedure `dfp2`

Warning, `a1` is implicitly declared local to procedure `dfp2`

Warning, `P` is implicitly declared local to procedure `dfp2`

Warning, `N` is implicitly declared local to procedure `dfp2`

Warning, `i` is implicitly declared local to procedure `dfp2`

> dfp2(20,2);
>

                                 0, 0

j'ai quelque peu modifier le programme il prend maintenant 2 argument et en renvoi deux aussi... (j'aurai besoin de ces modifs pour faire la suite)
mais en effet ca ne marche pas aussi bien que prévu!!!
re : Décomposition en facteurs premier en maple#msg796794 Posté le 16-12-06 à 00:50
Posté par Profilvincprof vincprof

> dfp2(20,1);
>

                                 2, 2
re : Décomposition en facteurs premier en maple#msg796799 Posté le 16-12-06 à 00:55
Posté par ProfilRouliane Rouliane

c'est bizarre.

tappe dfp2(30,2);
re : Décomposition en facteurs premier en maple#msg796801 Posté le 16-12-06 à 00:57
Posté par Profilvincprof vincprof

ca donne (3,1).

par contre dfp2(7,1) donne (0,0)...
re : Décomposition en facteurs premier en maple#msg796802 Posté le 16-12-06 à 00:58
Posté par ProfilRouliane Rouliane

j'ai trouvé, à la fin du programme, c'est

> P[k]:=a;
> N[k]:=1;

il te manque les ':' !!!!
re : Décomposition en facteurs premier en maple#msg796807 Posté le 16-12-06 à 01:06
Posté par Profilvincprof vincprof

ok c a l'air de marcher, le programme suivant donne la dérivée de a (dans le sens où si p est premier alors p'=1 et pour tout a,b dans N, (ab)'=a'b+ab' on a la prop suivante : n'=n\sum_{i=1}^{k}{\frac{n_{i}}{p_{i}}}

que j'ai traduit de cette façon :
deriv:=proc(n)
> k:=n; s:=0;
> for i from 1 to k do
> (Pi,Ni):=dfp2(n,i);
> if Pi<>0
> then s:=s+(Ni/Pi);
> fi:
> od:
> s:=n*s;
> end:

> deriv(5);

                                  1
re : Décomposition en facteurs premier en maple#msg796810 Posté le 16-12-06 à 01:08
Posté par ProfilRouliane Rouliane

et ?
re : Décomposition en facteurs premier en maple#msg796815 Posté le 16-12-06 à 01:14
Posté par Profilvincprof vincprof

là aussi ca a l'air de marcher...(grace a toi!!! merci bcp!!!)
mais la suite se complique :
on cherche les nombres a qui ne sont pas solution de n'=a.
on a que si a=p+2 avec p premier, alors il existe une solution et ensuite on a que si a est pair, il existe aussi une solution.
donc on elimine tout ces cas. il reste que des "a" qui ne répondent a aucune des deux conditions mais dont l'équation n'=a a des solutions : 27 par exemple...
Mais on a une condition suplémentaire :  on sais que si il existe une solution, alors elle répond a ca : n<\frac{a^{2}}{4}
re : Décomposition en facteurs premier en maple#msg796817 Posté le 16-12-06 à 01:14
Posté par Profilvincprof vincprof

pardon si n est solution, n<...
re : Décomposition en facteurs premier en maple#msg796818 Posté le 16-12-06 à 01:15
Posté par ProfilRouliane Rouliane

Je dois dire que je comprend pas trop tout tes trucs

Si tu veux que je t'aide, le mieux est que tu m'expliques ce que tu voudrais coder exactement
re : Décomposition en facteurs premier en maple#msg796819 Posté le 16-12-06 à 01:15
Posté par ProfilRouliane Rouliane

et bravo pour ton prog qui marche nikel apparemment
re : Décomposition en facteurs premier en maple#msg796824 Posté le 16-12-06 à 01:18
Posté par Profilvincprof vincprof

et voici ma traduction :
for a from 2 to 100 do
> if (a mod 2)=1
> then if  (isprime(a-2))=false
>      then for n from 1 to floor((a^2)/4) do                                                                                                     if  deriv(n)<>a
>            then print(a):
>            fi;  
>       od;
> fi;
> fi;
> od:
re : Décomposition en facteurs premier en maple#msg796825 Posté le 16-12-06 à 01:18
Posté par ProfilCauchy Cauchy

vincprof ca a rien avoir juste par curiosité ton prof a corrigé cet exo:
http://www.ilemaths.net/forum-sujet-105058.html?
re : Décomposition en facteurs premier en maple#msg796828 Posté le 16-12-06 à 01:20
Posté par ProfilRouliane Rouliane

ca veut rien dire ton code .. then if ça n'existe pas.

Essaye d'expliquer ce que tu veux faire exactement, je peux pas t'aider sinon
re : Décomposition en facteurs premier en maple#msg796841 Posté le 16-12-06 à 01:28
Posté par Profilvincprof vincprof

je veux obtenir la liste des nombres tels que :
aucun ne soit pair,
auncun ne puisse s'écrire sous la forme a=p+2 où p est premier
et où l'on veut qu'il n'y ai aucun a tq il existe n tq n'=a et pour cela on balaye tout les n de 1 à a²/4 et on les dérive pour les comparer avec a.
re : Décomposition en facteurs premier en maple#msg796846 Posté le 16-12-06 à 01:30
Posté par Profilvincprof vincprof

> lissolut:=proc(n)
> L:=[];
> for a from 2 to 100 do
> if (a mod 2)=1
> then if  (isprime(a-2))=false
>      then for n from 1 to floor((a^2)/4) do                                                                                                                           if  deriv(n)<>a
>            then L:=a,L:
>            fi;  
>       od;
> fi;
> fi;
> od:
> RETURN(L)
> end:
parce que c'est mieux avec des procédures.
re : Décomposition en facteurs premier en maple#msg796847 Posté le 16-12-06 à 01:31
Posté par Profilvincprof vincprof

mais ca ne marche pas :
lissolut(100);
Error, (in lissolut) illegal use of a formal parameter
re : Décomposition en facteurs premier en maple#msg796848 Posté le 16-12-06 à 01:31
Posté par ProfilRouliane Rouliane

tu pars de quelle liste de nombres ?
re : Décomposition en facteurs premier en maple#msg796851 Posté le 16-12-06 à 01:32
Posté par Profilvincprof vincprof

j'ai construit un truc du genre
if___
then if___
     then___
     fi
fi
ca n'existe pas?
re : Décomposition en facteurs premier en maple#msg796853 Posté le 16-12-06 à 01:33
Posté par ProfilRouliane Rouliane

bon, clairement, je capte rien à ce que tu veux faire.
Est ce que tu pourrais me dire ce que tu veux tester, afin que je t'aide pour le ocde ensuite.

Par exemple, dis moi :

"Je veux tester si l'entier est premier, ensuite je veux tester la dérivée, etc ... "
re : Décomposition en facteurs premier en maple#msg796854 Posté le 16-12-06 à 01:33
Posté par ProfilRouliane Rouliane

si ça existe
re : Décomposition en facteurs premier en maple#msg796855 Posté le 16-12-06 à 01:34
Posté par ProfilCauchy Cauchy

Citation :
vincprof ca a rien avoir juste par curiosité ton prof a corrigé cet exo:


Je me cite c'est peut etre passe inapercu
re : Décomposition en facteurs premier en maple#msg796856 Posté le 16-12-06 à 01:34
Posté par Profilvincprof vincprof



après deux trois modif :


lissolut:=proc(n)
> L:=[];
> for a from 2 to n do
> if (a mod 2)=1
> then if  (isprime(a-2))=false
>      then for j from 1 to floor((a^2)/4) do                                                                                                                           if  deriv(j)<>a
>            then L:=a,L:
>            fi;  
>       od;
> fi;
> fi;
> od:
> RETURN(L)
> end:

mais ca ne marche toujours pas...
re : Décomposition en facteurs premier en maple#msg796858 Posté le 16-12-06 à 01:35
Posté par ProfilRouliane Rouliane

je le répète, mais à partir du moment où je capte pas ce que tu veux faire, je peux pas t'aider
re : Décomposition en facteurs premier en maple#msg796862 Posté le 16-12-06 à 01:42
Posté par Profilvincprof vincprof

je veux obtenir une liste de nombres.qui répond a quelque conditions :

aucun nombre ne doit etre pair,

auncun ne doit s'écrire sous la forme a=p+2 où p est premier.


et on veut qu'il n'y ai aucun nombre "a" tq: "il existe n tq n'=a" et pour cela on balaye tout les n de 1 à a²/4 et on les dérive (avec la procedure "deriv") pour les comparer avec a et s'ils sont egaux à a alors ils ne doivent pas apparaitre dans la liste.
re : Décomposition en facteurs premier en maple#msg796868 Posté le 16-12-06 à 01:46
Posté par ProfilRouliane Rouliane

ok, merci.

dans le proc(n), à quoi correspond n ?
re : Décomposition en facteurs premier en maple#msg796873 Posté le 16-12-06 à 01:50
Posté par Profilvincprof vincprof

oui pardon, par exemple pour n= 1000, on aura la liste de tout les nombres inférieurs a 1000 répondant aux critères...
re : Décomposition en facteurs premier en maple#msg796878 Posté le 16-12-06 à 01:54
Posté par ProfilRouliane Rouliane

ok.

conçernant la 3ème condition :

Citation :
veut qu'il n'y ai aucun nombre "a" tq: "il existe n tq n'=a" et pour cela on balaye tout les n de 1 à a²/4 et on les dérive (avec la procedure "deriv") pour les comparer avec a et s'ils sont egaux à a alors ils ne doivent pas apparaitre dans la liste.


est ce que parmi les nombres de 1 à a²/4, il peut en avoir plusieurs dont la dérivée est différente de a ?
re : Décomposition en facteurs premier en maple#msg796883 Posté le 16-12-06 à 01:59
Posté par Profilvincprof vincprof

a partir du momen où il en a 1 qui vaut a, il faut arreter le processus car on ne le veu pas dans la liste.




Bon je n'en peux plus je vais me coucher, j'y reviendrai dans la journée demain.
bonne nuit.
re : Décomposition en facteurs premier en maple#msg796892 Posté le 16-12-06 à 02:10
Posté par ProfilRouliane Rouliane

Une solution peut-etre :

lissolut:=proc(n)
L:=[1..n];
local k;
k:=1;
for a from 2 to n do
> if ((a mod 2)=1)=true then
>    if  (isprime(a-2))=false then
>       for j from 1 to floor((a^2)/4) do  
            if  deriv(j)<>a then    
>            L[k]:=a;
             k:=k+1;
>            fi;  
>       od;
>    fi;
> fi;
od:
RETURN(L)
> end:
re : Décomposition en facteurs premier en maple#msg798478 Posté le 16-12-06 à 19:54
Posté par Profilvincprof vincprof

j'ai apporté quelque modif a ce que tu proposai parce que ca ne marchai pas :

#programme pour concaténer deux liste#
>  append1:=proc(L::list(list))  
>
>     local i;
>
>     [seq(op(i),i=L)]
>
>   end:
> append1([[1],[2,1]]);
>

                              [1, 2, 1]

> lissolut:=proc(n)
> L := [];
> k:=1;
> for a from 2 to n do
>  if evalb((a mod 2)=1)=true then
>     if  evalb(isprime(a-2))=false then
>        for j from 2 to floor((a^2)/4) do  
>             if  evalb(deriv(j)<>a)=true then    
>             L:=append1([L,[a]]);
>              k:=k+1;
>             fi;  
>        od;
>     fi;
>  fi;
> od;
> RETURN(L)
>  end:
Warning, `L` is implicitly declared local to procedure `lissolut`

Warning, `k` is implicitly declared local to procedure `lissolut`

Warning, `a` is implicitly declared local to procedure `lissolut`

Warning, `j` is implicitly declared local to procedure `lissolut`

> lissolut(30);
>
Warning, computation interrupted


je défini L comme la liste vide afin de lui faire rentrer dans L seulement les nombres qui m'intéresse et dont la quantité est encore inconnue (tu partai du fait qu'il y avai n terme dans L).
re : Décomposition en facteurs premier en maple#msg798487 Posté le 16-12-06 à 19:58
Posté par Profilvincprof vincprof

le souci est que le programme ne s'arrète pas...
de plus je ne vois pas a quoi sert k...
re : Décomposition en facteurs premier en maple#msg798750 Posté le 16-12-06 à 21:44
Posté par Profilvincprof vincprof

non en fait, le programme s'arrète mais il est tres long   et il sort des résultat faux :
lissolut:=proc(n)
> L := [];
> k:=1;
> for a from 2 to n do
>  if evalb((a mod 2)=1)=true then
>     if  evalb(isprime(a-2))=false then
>        for j from 2 to evalf(floor((a^2)/4)) do  
>             if  evalb(deriv(j)<>a)=true then    
>            
>              k:=k+1;
>              else L:=append1([L,[a]]);
>             fi;  
>        od;
>     fi;
>  fi;
> od;
> RETURN(L)
>  end:Warning, `L` is implicitly declared local to procedure `lissolut`

Warning, `k` is implicitly declared local to procedure `lissolut`

Warning, `a` is implicitly declared local to procedure `lissolut`

Warning, `j` is implicitly declared local to procedure `lissolut`

> lissolut(20);
>

                                  []
re : Décomposition en facteurs premier en maple#msg798805 Posté le 16-12-06 à 22:00
Posté par ProfilRouliane Rouliane

essaye de tester mon prgramme ( en rajoutant les evalb entre autre).

à la fin, mets un RETURN ( L[1]);
re : Décomposition en facteurs premier en maple#msg798829 Posté le 16-12-06 à 22:06
Posté par ProfilRouliane Rouliane

et rajoute une boucle au début pour initialiser L à 0

« Précédent 1 2 3 Suivant » +


Répondre à ce sujet

réservé Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster
attention Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.



maths - prof de maths haut de pagehaut Retrouvez cette page sur ilemaths l'île des mathématiques
© Tom_Pascal & Océane 2012