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 

Convertir une liste en différence
Aller à la page 1, 2  Suivante
 
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: 14 Mar 2015 9:25    Sujet du message: Convertir une liste en différence Répondre en citant

Bonjour ALS,

J'ai regardé dans l'aide de convert mais je n'ai toujours pas trouvé comment convertir une liste en "différence", si vous pouvez m'aider s'il vous plaît, voici la séquence, et au lieu du "+" il faudrait que ça fasse un "-" mais même avec "minus" j'y arrive pas :

MAPLE

==========================

restart;
Digits := 150;
p := 2537;
a := [seq(2^n, n = 1 .. 10)];
with(combinat);
b := choose(a, 2);
N := nops(b);
with(ListTools);
c := [seq(convert(b[i], `+`), i = 1 .. N)];
d := convert(c, set);
Diviseurs := nops(d);
s := seq(r/p, r = d);
select(proc (x) options operator, arrow;
type(x, posint) end proc, [s]);

==============================

C'est la 9éme ligne : c := [seq(convert(b[i], `+`), i = 1 .. N)]; que je voudrais convertir en DIFFERENCE au lieu de SOMME...?
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: 14 Mar 2015 9:52    Sujet du message: Répondre en citant

Re-bonjour ALS,

Pour aller plus loin, comment sélectionner parmi les résultats de la séquence "s" les fractions qui ont été simplifiées, c'est à dire dans l'exemple, celles qui ont pour dénominateur "59"...?

Maple :

====================================

restart;
Digits := 150;
p := 2537;
a := [seq(2^n, n = 1 .. 10)];
with(combinat);
b := choose(a, 2);
N := nops(b);
with(ListTools);
c := [seq(convert(b[i], `+`), i = 1 .. N)];
d := convert(c, set);
Diviseurs := nops(d);
s := seq(r/p, r = d);
select(proc (x) options operator, arrow;
type(x, posint) end proc, [s]);

150
2537
[2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
[[2, 4], [2, 8], [2, 16], [2, 32], [2, 64], [2, 128], [2, 256],

[2, 512], [2, 1024], [4, 8], [4, 16], [4, 32], [4, 64],

[4, 128], [4, 256], [4, 512], [4, 1024], [8, 16], [8, 32],

[8, 64], [8, 128], [8, 256], [8, 512], [8, 1024], [16, 32],

[16, 64], [16, 128], [16, 256], [16, 512], [16, 1024],

[32, 64], [32, 128], [32, 256], [32, 512], [32, 1024],

[64, 128], [64, 256], [64, 512], [64, 1024], [128, 256],

[128, 512], [128, 1024], [256, 512], [256, 1024], [512, 1024]]
45
{6, 10, 12, 18, 20, 24, 34, 36, 40, 48, 66, 68, 72, 80, 96, 130,

132, 136, 144, 160, 192, 258, 260, 264, 272, 288, 320, 384,

514, 516, 520, 528, 544, 576, 640, 768, 1026, 1028, 1032, 1040,

1056, 1088, 1152, 1280, 1536}
45
6 10 12 18 20 24 34 36 40 48 66
----, ----, ----, ----, ----, ----, ----, ----, ----, ----, ----,
2537 2537 2537 2537 2537 2537 2537 2537 2537 2537 2537

68 72 80 96 130 132 136 144 160 192 6
----, ----, ----, ----, ----, ----, ----, ----, ----, ----, --,
2537 2537 2537 2537 2537 2537 2537 2537 2537 2537 59

260 264 272 288 320 384 514 12 520 528 544
----, ----, ----, ----, ----, ----, ----, --, ----, ----, ----,
2537 2537 2537 2537 2537 2537 2537 59 2537 2537 2537

576 640 768 1026 1028 24 1040 1056 1088 1152 1280
----, ----, ----, ----, ----, --, ----, ----, ----, ----, ----,
2537 2537 2537 2537 2537 59 2537 2537 2537 2537 2537

1536
----
2537

====================================
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: 14 Mar 2015 10:17    Sujet du message: Répondre en citant

Re-bonjour ALS,

Pour la 2éme partie du probléme j'ai fait comme ça, mais c'est peut-être lourd :

Maple :

===============================

restart;
Digits := 150;
p := 2537;
a := [seq(2^n, n = 1 .. 10)];
with(combinat);
b := choose(a, 2);
N := nops(b);
with(ListTools);
c := [seq(convert(b[i], `+`), i = 1 .. N)];
d := convert(c, set);
Diviseurs := nops(d);
s := [seq(r/p, r = d)];
select(proc (x) options operator, arrow;
type(x, posint) end proc, [s]);
e := denom(s);
f := seq(p/i, i = e);
select(proc (x) options operator, arrow;
type(x, posint) end proc, [f]);

===============================
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: 14 Mar 2015 15:13    Sujet du message: Répondre en citant

Bonjour,

Pour former la liste des différences des éléments de b, on peut faire:

Code:


> map(x->x[2]-x[1],b);

  [2, 6, 14, 30, 62, 126, 254, 510, 1022, 4, 12, 28, 60, 124, 252,

        508, 1020, 8, 24, 56, 120, 248, 504, 1016, 16, 48, 112, 240,

        496, 1008, 32, 96, 224, 480, 992, 64, 192, 448, 960, 128, 384,

        896, 256, 768, 512]




Citation:

comment sélectionner parmi les résultats de la séquence "s" les fractions qui ont été simplifiées, c'est à dire dans l'exemple, celles qui ont pour dénominateur "59"...?


Code:

> t:=NULL:
> for x in [s] do
>    if denom(x)<p then t:=t,x fi
> od:
> t:=[t];
                                     12  24
                         t := [6/59, --, --]
                                     59  59


Voilà, à bientôt.
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: 15 Mar 2015 15:33    Sujet du message: Répondre en citant

Bonjour ALS,

Merci une fois de plus, vous êtes génial : )
Je vais essayer les séquences et je vous tiens au courant.
La nouvelle idée c'est de générer des nombres qui soient la différence de deux puissances de "2", en espérant qu'un de ces nombres générés soient un multiple d'au moins 1 facteur cherché...

Soit p = m*n avec m et n premier et 2<m<n
On va donc fabriquer des nombres tels que f=(2^a)-(2^b) avec a et b entiers >0.
Espérant que f soit un multiple de m ou de n ...
@bientôt
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: 15 Mar 2015 18:30    Sujet du message: Répondre en citant

Re-bonsoir ALS,

Vos deux lignes de commande sont excellentes : )
Merci : )
Je vais essayer de varier la ligne " a := [seq(2^n, n = 1 .. 1000)] "
Avec les puissances de 3 de 5 et de 7 pour le nombre
p:=1522605027922533360535618378132637429718068114961380688657908494580122963258952897654000350692006139

Je vous tiens au courant : )
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: 17 Mar 2015 2:06    Sujet du message: Répondre en citant

Bonsoir ALS,

Une nouvelle idée pour la factorisation des semi-premiers à plus de 100 digits, serait peut-être non pas chercher directement l'un des deux facteurs, mais plus chercher au moins l'un des multiples de ces facteurs, car les multiples en fait sont en quantité infini, alors que les 2 facteurs ne sont que 2...
L'idée est de diviser le nombre à factoriser par l'un de ces multiples, et si la fraction est réductible, ( exemple : 2537/903 ), alors on aurait trouvé l'un des facteurs.
Si vous avez une idée pour matérialiser ça en programme..?

Exemple qui montre comment ce serait plus facile de trouver un multiple que trouver directement l'un des facteurs :

restart; Digits := 100;
p := 2537;
Multiple_de_43 := [seq(43*i, i = 1 .. 100)];
Multiple_de_59 := [seq(59*i, i = 1 .. 100)];

100
2537

Multiple_de_43 := [43, 86, 129, 172, 215, 258, 301, 344, 387, 430, 473, 516, 559,
602, 645, 688, 731, 774, 817, 860, 903, 946, 989, 1032, 1075,
1118, 1161, 1204, 1247, 1290, 1333, 1376, 1419, 1462, 1505,
1548, 1591, 1634, 1677, 1720, 1763, 1806, 1849, 1892, 1935,
1978, 2021, 2064, 2107, 2150, 2193, 2236, 2279, 2322, 2365,
2408, 2451, 2494, 2537, 2580, 2623, 2666, 2709, 2752, 2795,
2838, 2881, 2924, 2967, 3010, 3053, 3096, 3139, 3182, 3225,
3268, 3311, 3354, 3397, 3440, 3483, 3526, 3569, 3612, 3655,
3698, 3741, 3784, 3827, 3870, 3913, 3956, 3999, 4042, 4085,
4128, 4171, 4214, 4257, 4300]


Multiple_de_59 :=[59, 118, 177, 236, 295, 354, 413, 472, 531, 590, 649, 708, 767, 826, 885, 944, 1003, 1062, 1121, 1180, 1239, 1298, 1357, 1416, 1475, 1534, 1593, 1652, 1711, 1770, 1829, 1888, 1947, 2006,
2065, 2124, 2183, 2242, 2301, 2360, 2419, 2478, 2537, 2596,
2655, 2714, 2773, 2832, 2891, 2950, 3009, 3068, 3127, 3186,
3245, 3304, 3363, 3422, 3481, 3540, 3599, 3658, 3717, 3776,
3835, 3894, 3953, 4012, 4071, 4130, 4189, 4248, 4307, 4366,
4425, 4484, 4543, 4602, 4661, 4720, 4779, 4838, 4897, 4956,
5015, 5074, 5133, 5192, 5251, 5310, 5369, 5428, 5487, 5546,
5605, 5664, 5723, 5782, 5841, 5900]

Dans cet exemple on peut voir qu'il est plus facile de trouver les facteurs, en cherchant au moins l'un de leur multiple, qui est en nombre infini, et ce pour chacun des facteurs : )
P.S.: Je continue à chercher pour les puissances de 2...
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: 17 Mar 2015 7:56    Sujet du message: Répondre en citant

Bonjour,
Je ne comprends pas bien cette logique, car là vous supposez déjà connaitre a priori la réponse: en formant les multiples de 43 puis de 59, vous savez déjà que 2537 = 43 * 59.
Comment allez vous faire pour un grand nombre à 100 digits?
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: 17 Mar 2015 11:55    Sujet du message: Répondre en citant

Bonjour ALS,

Oui c'est vrai qu'au départ on ne connaît pas les facteurs du nombre semi-premier. Mais l'exemple de 2537, pour montrer au final, qu'il y à une infinité de nombre ( multiples de ses facteurs ) qui permettent de retrouver lesdits facteurs et que ces nombres multiples, sont aussi divers que possible, pairs, impairs et certainement des propriétés remarquables...
Donc en fait au lieu de se borner dans la recherche des facteurs à sqrt(p), on ne place aucunes bornes et au lieu d'attendre un résultat entier d'une division de "p" par un nombre inférieur à sa racine, on cherche simplement un résultat, plus précisément, une fraction de (multiples/p) qui est réductible, ce qui donne le facteur.

Le tout maintenant, c'est de voir si on peut trouver au moins une propriété remarquable dans l'un des nombres multiples, qui vaudrait pour tout "p"...
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: 18 Mar 2015 5:26    Sujet du message: Répondre en citant

Bonsoir ALS,

Encore besoin de votre aide s'il vous plaît : )
Comment modifier la séquence pour qu'elle génère aléatoirement des nombres par exemple de 3 digits tant qu'elle ne trouve pas un résultat "t"...? Ce serait donc pour remplacer la ligne "a := 2537; p := [seq(100 .. 200)]: "
Car dans ce cas, j'ai pris une fourchette de nombre entre 100 et 200, mais comment faire pour générer directement des nombres de 3 digits et ce tant que on ne trouve pas un résultat "t"...??

Maple :

======================================

restart;
Digits := 1000;
a := 2537; p := [seq(100 .. 200)]:
s := seq(i/a, i = p):
t := NULL;
for x in [s] do if denom(x) < 2537 then t := t, x end if end do;
t := [t];

======================================
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: 18 Mar 2015 16:12    Sujet du message: Répondre en citant

Bonjour,

Code:


> restart;
> Digits := 1000;
> randomize(): a := 2537;
> do
>   n:=rand(100..200)():  x := n/a:
>   if denom(x) < a then break fi:
> end do:
> x;

                            Digits := 1000


                              a := 2537


                                 3/59

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: 18 Mar 2015 20:17    Sujet du message: Répondre en citant

Bonjour ALS,
Je vous ai déjà dit tellement de merci, et encore un grand merci dans cet océan de merci : )
J'ai l'âme poète ce soir : )
Merci, à bientôt
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: 06 Juil 2015 21:44    Sujet du message: Convertir une liste en différence Répondre en citant

Bonjour ALS,

J'espère que ça va et qu'il ne fait pas trop chaud de votre côté : )
Je viens vers vous afin de vous demander votre aide, des conseils, des suggestions, pour la construction d'un site web.

Vous pouvez voir à cette adresse, ce qui a déjà été fait :

" guimzo.free.fr "

Je sollicite votre aide, surtout par rapport à la partie forum que je voudrais intégrer dans le site.

À bientôt
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: 14 Juil 2015 7:41    Sujet du message: Répondre en citant

Bonjour,
Bonne idée que ce site.
Pour mon forum sur Maple que j'ai intégré pour mon site, j'ai choisi phpBB.
Mais ensuite, il a fallu que j'adapte la charte graphique du site à celle du forum. Je l'ai fait en 2003 je crois, donc je ne me souviens plus très bien comment j'avais procédé.
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: 17 Juil 2015 14:25    Sujet du message: Répondre en citant

Bonjour ALS,

Merci pour vos encouragements pour le site : )
Autrement j'espère que vous vous portez bien et que vous passez de bonnes vacances malgré ces jours d’écrasantes chaleur : )
@ Bientôt
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
Aller à la page 1, 2  Suivante
Page 1 sur 2

 
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.