BIBLIOTHÈQUE DE GESTION DE GRANDS NOMBRES POSITIFS

Messages postés
968
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
- - Dernière réponse : cs_Shooter74
Messages postés
2
Date d'inscription
dimanche 18 mai 2008
Statut
Membre
Dernière intervention
23 novembre 2008
- 23 nov. 2008 à 00:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45451-bibliotheque-de-gestion-de-grands-nombres-positifs

Afficher la suite 
cs_juju12
Messages postés
968
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4 -
Je prends par exemple la fonction * :

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.
mehdi7604
Messages postés
120
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
6 mars 2015
-
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és
968
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4 -
Une présentation de quelques algos de multiplication rapide:
http://algo.inria.fr/salvy/mpri/Cours2.pdf
cs_Shooter74
Messages postés
2
Date d'inscription
dimanche 18 mai 2008
Statut
Membre
Dernière intervention
23 novembre 2008
-
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.
mehdi7604
Messages postés
120
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
6 mars 2015
-
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 .