Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5050 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  gmp et les grands nombres :(

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

gmp et les grands nombres :(

n°722008
roule007
Posté le 11-05-2004 à 15:32:31  profilanswer
 

Yep @ tous,  
 
J'ai un programme à faire en C++ avec la bibliothéques gmp, sous linux avec compilateur g++ (pour la gestion des grands nombres 512, 1024 bits) et je suis coincé !
 
Voilà je dois faire des calculs (racine carré) sur des nombres de 513 bits  pour etre précis et je suis incapable de faire un simple sqrt(n) avec gmp ou "n" est mon nombre de 513 bits !
 
Alors s'il y a une personne qui peux m'aider, merci d'avance !
De même, impossible d'utiliser la fonction floor, toujours avec gmp, donc A L'AIDE Please  :bounce:  
 
Merci beaucoup !

mood
Publicité
Posté le 11-05-2004 à 15:32:31  profilanswer
 

n°722013
kadreg
profil: Utilisateur
Posté le 11-05-2004 à 15:37:35  profilanswer
 
n°722021
roule007
Posté le 11-05-2004 à 15:45:31  profilanswer
 

ok merci de je n'y arrive toujours pas ( newbie !) donc de façon plus concrete, je dois definir un entier grand et prendre sa racine carré, comment faire ?
Merci encore, mais un exemple vaut mieux pour moi que des tonnes de HOWTO !

n°722031
cricri_
Posté le 11-05-2004 à 15:53:27  profilanswer
 

Mais pourquoi n'utilise tu pas les double ?
Car ça correspond à peu près à 1024 bits :
1.7976931348623158e+308

n°722035
roule007
Posté le 11-05-2004 à 15:54:27  profilanswer
 

sa ne passe pas car je dois l'elever au carré, donc je suis obliger d'utiliser gmp :(

n°722146
roule007
Posté le 11-05-2004 à 16:38:00  profilanswer
 

Quelqu'un peut il m'aider pour GMP, je suis en pleine galére !!!
Please ;)
P.S : Penser qu'un jour aussi vous avez été newbie dans un domaine....non ?

n°722152
kadreg
profil: Utilisateur
Posté le 11-05-2004 à 16:40:14  profilanswer
 

J'ai pas GMP ici. Ce soir, si je suis pas trop désespéré, je ponderais une ligne :o

n°722166
roule007
Posté le 11-05-2004 à 16:46:53  profilanswer
 

Merci !

n°722192
roule007
Posté le 11-05-2004 à 17:06:27  profilanswer
 

Si tu as le temps kadreg,
mon nombre fait 513 bits soit 155 chiffres, donc essayes de prendre un nombre similaire, car j'ai l'impression que mon plantage viens de la taille de mon nombre, non geré par gmp, ou plutôt g++, mon compilateur !
Encore Merci à toi.

n°722302
Taz
bisounours-codeur
Posté le 11-05-2004 à 18:29:01  profilanswer
 
mood
Publicité
Posté le 11-05-2004 à 18:29:01  profilanswer
 

n°722481
kadreg
profil: Utilisateur
Posté le 11-05-2004 à 21:02:27  profilanswer
 

Code :
  1. #include <stdio.h>
  2. #include <gmp.h>
  3. int main () {
  4.   mpf_t number;
  5.   mpf_t result;
  6.   mpf_init (number);
  7.   mpf_init (result);
  8.   mpf_set_str (number, "25465487912546548791254654879125465487912546548791254654879125465487912546548791254654879125465487912546548791254654879125465487912546548791254654879185631", 10);
  9.   mpf_sqrt (result, number);
  10.   mpf_out_str (NULL, 10, 255, result);
  11.   puts ("\n" );
  12.   return 0;
  13. }


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°722486
Taz
bisounours-codeur
Posté le 11-05-2004 à 21:04:35  profilanswer
 

puts ("\n" );  [:rofl]
 
sinon le wrapper C++ fait tout ça bien plus proprement

n°722493
kadreg
profil: Utilisateur
Posté le 11-05-2004 à 21:06:13  profilanswer
 

Taz a écrit :

puts ("\n" );  [:rofl]


 
J'ai voulu glisser un fflush (stdin), mais j'ai pas eut l'occasion :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°722495
kadreg
profil: Utilisateur
Posté le 11-05-2004 à 21:06:39  profilanswer
 

Ah, merde, j'avais pas vu la cat. Tu nous fait le même en C++ ?


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°722500
Taz
bisounours-codeur
Posté le 11-05-2004 à 21:12:31  profilanswer
 

Code :
  1. #include <iostream>
  2. #include <gmpxx.h>
  3.  
  4.   int main () {
  5.       mpf_class number("25465487912546548791254654879125465487912546548791254654879125465487912546548791254654879125465487912546548791254654879125465487912546548791254654879185631", 10 /*bits de précision*/);
  6.       std::cout << sqrt(number) << '\n';
  7.   }

je pense. par contre ça saoule que y ait pas de namespace :o


Message édité par Taz le 11-05-2004 à 21:14:50
n°722521
cricri_
Posté le 11-05-2004 à 21:40:58  profilanswer
 

Une question, car moi je croyais qu'il fallait utiliser endl, donc pourquoi '\n' ?

n°722522
Taz
bisounours-codeur
Posté le 11-05-2004 à 21:43:56  profilanswer
 

vous êtes lourd là sérieux
 
le retour à la ligne sera toutjours '\n', et pas "\n" ou endl
 
 
endl c'est '\n' + flush :o

n°722525
skelter
Posté le 11-05-2004 à 21:47:20  profilanswer
 

mais on le voi partout ca (cour , tuto et autre)
 
on voit meme des cerr<<...<<endl; c'est pour dir :s

n°722527
cricri_
Posté le 11-05-2004 à 21:49:05  profilanswer
 

vi, mais dans quel cas utiliser un simple '\n' ou endl ?

n°722528
Taz
bisounours-codeur
Posté le 11-05-2004 à 21:54:18  profilanswer
 

cerr est pas bufferisé, aucun intérêt de flusher !
 
quand utilisé endl ? ben quand tu veux faire un retour à la ligne de flusher, sinon si tu veux juste un retour à la ligne, '\n' et basta


Message édité par Taz le 11-05-2004 à 21:54:36
n°722530
cricri_
Posté le 11-05-2004 à 21:55:48  profilanswer
 

Merci

n°722531
skelter
Posté le 11-05-2004 à 21:58:39  profilanswer
 

Taz a écrit :

cerr est pas bufferisé, aucun intérêt de flusher !
 


 
ben c'est bien ce que je reproche, pourquoi yen a qui utilise endl avec cerr ? zon ka utilise clog, le but de cerr c'est d'etre sur que ce soit affiché

n°723046
roule007
Posté le 12-05-2004 à 12:36:11  profilanswer
 

Merci beaucoupe les gars pour toutes ces participations !!
C'est super cool :)
 
Juste une derniere question, comment assigner des variables, je m'explique :
On veux dire par exemple :
number2 = -2 * number * number ;
Comment le faire avec gmp si on n'a pas de valeurs chiffrées pour number, du genre c'est l'utilisateur qui le saisit !
car :
mpf_set_str (d,(b*b)-(4*n),10) ;
Ne marche pas par exemple.
 
Merci d'avance!
 
P.S : mpf_floor existe ?

n°723095
kadreg
profil: Utilisateur
Posté le 12-05-2004 à 13:25:41  profilanswer
 

roule007 a écrit :


P.S : mpf_floor existe ?


 
On t'a filé suffisament de liens pour que tu puisse répondre. La première qualité d'un programmeur, c'est de chercher l'information.

n°723124
Taz
bisounours-codeur
Posté le 12-05-2004 à 13:58:49  profilanswer
 

roule007 a écrit :


On veux dire par exemple :
number2 = -2 * number * number ;

et bien tu l'écris pareil

n°723710
roule007
Posté le 12-05-2004 à 17:44:10  profilanswer
 

Merci @ tous, grace à votre aide j'ai vachement pu avencer, mais toutefois,  
Question a laquelle je n'ai pas trouvée de réponse dans la doc   :
 
Y a t'il un moyen d'afficher nos nombres en complet non de la forme : 1.15792e+77
Est-ce que ça dépend du compilateur ou de la bibli et surtout comment faire ?
 
Encore merci !

n°954721
initial
Posté le 17-01-2005 à 16:04:37  profilanswer
 

moi j'utilise NTL de Victor Shoup (www.shoup.net/ntl/). Vous sauriez me dire si c'est moins bien ou mieux que GMP ?  
Avantages/Inconvénients pour chaque librairie?
 
thx :)


Message édité par initial le 17-01-2005 à 16:05:08
n°954871
Taz
bisounours-codeur
Posté le 17-01-2005 à 17:27:54  profilanswer
 

ben libntl est comment dire ... inconnue. Elle a l'air pas mauvaise (GPL) et l'interface à l'air correcte

n°955536
initial
Posté le 18-01-2005 à 15:51:16  profilanswer
 

d'autres avis sur "Avantages/Inconvénients" pour chaque librairie (NTL et GMP) ?


Message édité par initial le 18-01-2005 à 15:51:38
n°975525
initial
Posté le 08-02-2005 à 16:05:51  profilanswer
 

Après étude, il s'avère que :
GMP est dix fois plus rapide que NTL. Toutefois, GMP est un peu moins convivial et pratique que NTL. Enfin, GMP n'est pas adapté aux calculs trigonométriques (cos, sin, etc).  

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  gmp et les grands nombres :(

 

Sujets relatifs
faire une suite aleatoire de 10 nombres compris entre 0 et 50 en .batNombres Arrondi
[PHP][newbie] Génération aléatoire de nombres différents 2 à 2 ?[traitement de nombres] Comment pourrais je faire ça sous Linux ?
les nombres complexes en pascalRemplir un tableau de nombres flottants avec une certaine valeur
[DOS] commande 'SET' et les nombres....[C] besoin important d'une info sur les nombres à virgule flottante
Connaissez-vous un langage qui gère les grands nombres ?[C++] Tres Grands Débutants - Recherche nombres premiers
Plus de sujets relatifs à : gmp et les grands nombres :(


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)