cs_Shooter74
Messages postés2Date d'inscriptiondimanche 18 mai 2008StatutMembreDernière intervention23 novembre 2008 23 nov. 2008 à 00:54
j'ai 4 Go de ram, donc pas de problème de ce côté là
Si je teste avec 100000000000000 ça ne compile pas, car le type int ne peut pas contenir de nombre aussi grand... donc quel intérêt de faire une lib si on ne peut pas gérer des nombres plus grands que les types d'origine ?
mehdi7604
Messages postés118Date d'inscriptionjeudi 11 mai 2006StatutMembreDernière intervention 6 mars 2015 22 nov. 2008 à 19:38
Je pense que t'as pas bien compri la source ,, je ne représente pas le " Grand Nombre " avec un int ,, mais avec une file ... je ne me rappelle pas pkoi j'ai utilisé un int, pke ça fait longtemps que j'ai ecrit ce code ,, mais c'est utile , normalement la longueur d'un "entier" doit tenir non pas seulement sur 10000 chiffres mais ,, la limite de ta RAM .
cs_Shooter74
Messages postés2Date d'inscriptiondimanche 18 mai 2008StatutMembreDernière intervention23 novembre 2008 22 nov. 2008 à 17:23
comment tu peux dire que c'est une lib de GRANDS entiers positifs si on fait la déclaration avec un int ????!?
Implémente la gestion des nombres comme si c'était des chaînes de caractères, pour qu'on puisse gérer des nombres avec 10 000 chiffres, et après, tu pourra dire que c'est de la gestion de GRANDS entiers.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 18 janv. 2008 à 13:21
mehdi7604
Messages postés118Date d'inscriptionjeudi 11 mai 2006StatutMembreDernière intervention 6 mars 2015 18 janv. 2008 à 00:14
Merci pour le commentaire ,
Bon les casde la mutiplication et les autres fonctions , je n'enavais pas besoin , j'avais besoin de cette biblio pour l'addition . mai sj'ai essayé de faire les autres , et j'ai prévu de les changer biensure , si tu peux me donner qqes noms d'algorithmes rapides comme Krastuba ,
oui tu as raison
merci
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 17 janv. 2008 à 23:17
D'abord (et c'est le cas pour toutes tes fonctions) pourquoi créer 4 nouvelles instances d'entier alors qu'une seule (le résultat) suffit?
Ensuite concernant ta technique de multiplication : pour faire x*y tu te contentes de sommer x y fois? C'est une blague? Si les deux sont de l'ordre 10^20 (c'est jamais qu'un __int64) le prog va faire 10^20 fois la boucle? Sans parler de toutes les pertes de temps dues à l'orienté objet dans ce cas-ci : surcharge de < (appelé 10^20 fois quand même toujours...), etc. Le moins qu'on puisse attendre d'une bibliothèque de gestion des grands nombres c'est de proposer des algorithmes rapides pour les opérations de base; par exemple, pour la multiplication, Karatsuba ou FFT...
23 nov. 2008 à 00:54
Si je teste avec 100000000000000 ça ne compile pas, car le type int ne peut pas contenir de nombre aussi grand... donc quel intérêt de faire une lib si on ne peut pas gérer des nombres plus grands que les types d'origine ?
22 nov. 2008 à 19:38
22 nov. 2008 à 17:23
Implémente la gestion des nombres comme si c'était des chaînes de caractères, pour qu'on puisse gérer des nombres avec 10 000 chiffres, et après, tu pourra dire que c'est de la gestion de GRANDS entiers.
18 janv. 2008 à 13:21
http://algo.inria.fr/salvy/mpri/Cours2.pdf
18 janv. 2008 à 00:14
Bon les casde la mutiplication et les autres fonctions , je n'enavais pas besoin , j'avais besoin de cette biblio pour l'addition . mai sj'ai essayé de faire les autres , et j'ai prévu de les changer biensure , si tu peux me donner qqes noms d'algorithmes rapides comme Krastuba ,
oui tu as raison
merci
17 janv. 2008 à 23:17
entier entier::operator*(entier a){
entier x(*this);
entier i=0;
entier val=x;
entier i_fin=a;
while(i<(i_fin-1)){
x=(x+val);
i=(i+1);
}
return x;
}
D'abord (et c'est le cas pour toutes tes fonctions) pourquoi créer 4 nouvelles instances d'entier alors qu'une seule (le résultat) suffit?
Ensuite concernant ta technique de multiplication : pour faire x*y tu te contentes de sommer x y fois? C'est une blague? Si les deux sont de l'ordre 10^20 (c'est jamais qu'un __int64) le prog va faire 10^20 fois la boucle? Sans parler de toutes les pertes de temps dues à l'orienté objet dans ce cas-ci : surcharge de < (appelé 10^20 fois quand même toujours...), etc. Le moins qu'on puisse attendre d'une bibliothèque de gestion des grands nombres c'est de proposer des algorithmes rapides pour les opérations de base; par exemple, pour la multiplication, Karatsuba ou FFT...
Enfin, bonne continuation.