Apprendre Maple Index du Forum Apprendre Maple
Site dédié au logiciel de calcul formel Maple
 
  Page d'accueilPage d'accueil   FAQFAQ    RechercherRechercher    Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs 
S'enregistrerS'enregistrer    ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Concaténer des résultats sous forme d'une liste

 
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Séquences, listes, ensembles, tables ou tableaux...
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 03 Mar 2015 23:41    Sujet du message: Concaténer des résultats sous forme d'une liste Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 04 Mar 2015 7:29    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 04 Mar 2015 12:18    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 04 Mar 2015 15:21    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 05 Mar 2015 5:34    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 05 Mar 2015 7:40    Sujet du message: Répondre en citant

Bonjour,
Non, car je doute que cela intéresse grand monde.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Guimzo



Inscrit le: 02 Juin 2012
Messages: 209

MessagePosté le: 05 Mar 2015 11:51    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Séquences, listes, ensembles, tables ou tableaux... Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  
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


phpBB

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com


Apprendre Maple - ©  - Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.