 |
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
Guimzo
Inscrit le: 02 Juin 2012 Messages: 210
|
Posté le: 03 Mar 2015 23:41 Sujet du message: Concaténer des résultats sous forme d'une liste |
|
|
Bonjour ALS : )
J'espère que ça va : )
Me revoilà pour de nouvelles aides : )
Je voudrais savoir s'il vous plaît comment pourrais je concaténer des résultats sous forme d'une liste principale ...?
Voici la procédure de base :
========================
with(combstruct);
n := 5;
liste := [2, 3, 5, 8];
b := nops(liste);
g := iterstructs(Combination(liste), size = b-1);
while `not`(finished(g)) do nextstruct(g) end do;
========================
Le soucis c'est que j'ai les résultats de cette façon :
with(combstruct); n := 5; liste := [2, 3, 5, 8]; b := nops(liste); g := iterstructs(Combination(liste), size = b-1); while `not`(finished(g)) do nextstruct(g) end do;
[2, 3, 5, 8]
4
[2, 3, 5]
[2, 3, 8]
[2, 5, 8]
[3, 5, 8]
Comment faire de sorte que les résultats soient sous la forme d'une liste générale avec les différents groupes...?
C'est à dire, comme ça :
R := [[2, 3, 5], [2, 3, 8], [2, 5, 8], [3, 5, 8]] |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 04 Mar 2015 7:29 Sujet du message: |
|
|
Bonjour,
Mieux vaut utiliser l'outil choose du package combinat. Ainsi:
Code: |
> liste := [2, 3, 5, 8];
liste := [2, 3, 5, 8]
> with(combinat):
> R:=choose(liste,3);
R := [[2, 3, 5], [2, 3, 8], [2, 5, 8], [3, 5, 8]]
|
A plus tard. |
|
Revenir en haut de page |
|
 |
Guimzo
Inscrit le: 02 Juin 2012 Messages: 210
|
Posté le: 04 Mar 2015 12:18 Sujet du message: |
|
|
Bonjour ALS,
Merci pour la solution.
Mais le probléme c'est qu'avec "choose" impossible pour Maple de calculer le résultat quand on fait augmenter la longueur de la liste de départ et que le nombre d'éléments à combiner lui aussi est conséquent :
a := [$1..90];
A := nops(a);
with(combinat):
b := choose(a, 89);
N := nops(b)
Ainsi là, Maple n'arrive pas à donner un résultat, et la mémoire s'emballe.
Mais avec "iterstructs" on peut contourner le probléme, sauf que les résultats ne sont pas sous la forme d'une liste générale avec les groupes de combinaisons :
a := [$(1 .. 90)];
b := nops(a);
with(combstruct);
g := iterstructs(Combination(a), size = b-1);
while not finished(g) do nextstruct(g) end do; |
|
Revenir en haut de page |
|
 |
Guimzo
Inscrit le: 02 Juin 2012 Messages: 210
|
Posté le: 04 Mar 2015 15:21 Sujet du message: |
|
|
Rebonjour ALS,
Voilà la procédure nouvelle :
restart;
Digits := 1000;
p := 1522605027922533360535618378132637429718068114961380688657908494580122963258952897654000350692006139;
length(p);
a := [2^164, 2^163, 2^160, 2^159, 2^158, 2^157, 2^156, 2^155, 2^153, 2^152, 2^151, 2^150, 2^148, 2^146, 2^140, 2^139, 2^138, 2^136, 2^134, 2^133, 2^131, 2^128, 2^127, 2^125, 2^123, 2^121, 2^117, 2^116, 2^115, 2^114, 2^112, 2^111, 2^106, 2^105, 2^95, 2^92, 2^91, 2^89, 2^87, 2^84, 2^82, 2^81, 2^78, 2^77, 2^76, 2^75, 2^74, 2^72, 2^71, 2^69, 2^68, 2^65, 2^64, 2^61, 2^60, 2^58, 2^57, 2^56, 2^55, 2^52, 2^51, 2^50, 2^46, 2^45, 2^41, 2^40, 2^39, 2^38, 2^35, 2^34, 2^32, 2^30, 2^28, 2^20, 2^19, 2^18, 2^17, 2^16, 2^13, 2^10, 2^7, 2^6, 2^5, 2^4, 2^2, 2, 2^0, 2^165];
A := nops(a);
with(combstruct):
n := 88;
L := [];
q := iterstructs(Combination(a), size = n-1):
while not finished(q) do L := [op(L), nextstruct(q)] end do:
N := nops(L);
with(ListTools):
c := [seq(convert(L[i], `+`), i = 1 .. N)]:
s := seq(p/r, r = c):
select(proc (x) options operator, arrow; type(x, posint) end proc, [s]);
La procédure est opérationnelle et contourne le probléme du "choose" qui n'arrive pas à donner un résultat quand le nombre d'éléments à combiner est conséquent.
Le but de la procédure au final, est de factoriser un nombre semi-premier, en partant du principe que les facteurs cherchés sont la somme d'une combinaison particulière de puissance de 2.
À bientôt, je vais essayer de voir si j'arrive à factoriser un "grand nombre" semi-premier, en jouant à chaque fois sur le nombre de puissance de 2 à combiner. |
|
Revenir en haut de page |
|
 |
Guimzo
Inscrit le: 02 Juin 2012 Messages: 210
|
Posté le: 05 Mar 2015 5:34 Sujet du message: |
|
|
Bonsoir ALS,
Est-ce que cela vous dirait si on recensait toutes les procédures Maple que l'on a vu dans un livre qu'on ferait éditer...? |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 05 Mar 2015 7:40 Sujet du message: |
|
|
Bonjour,
Non, car je doute que cela intéresse grand monde. |
|
Revenir en haut de page |
|
 |
Guimzo
Inscrit le: 02 Juin 2012 Messages: 210
|
Posté le: 05 Mar 2015 11:51 Sujet du message: |
|
|
Bonjour ALS,
Entendu, mais je vous assure que si je trouvais un livre sur Maple, qui se bornerait tout simplement, à donner des programmes tous faits et en tous genres, cela m' intéresserait grandement : ) |
|
Revenir en haut de page |
|
 |
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com
Apprendre Maple - © 07/04/2025
- Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.
|