IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Tres longue variable


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Par défaut Tres longue variable
    Bonjour,
    Alors en faite je n'arrive pas à stocker dans des variables des nombres depassant la vingtaine de chiffres. Mais je souhaiterais effectuer des calculs avec des nombres beaucoup plus grands (au moins 100 chiffres).
    D'où ma question, est-il possible de sticker des nombres de cette importance dans une variable? si oui comment?

    En vous remerciant d'avance,
    elephant13

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Tes variables, elles sont déclarées comme étant de quel type ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Par défaut
    Alors je venais pour preciser mon sujet, donc je vais "repondre" à ta question en même temps.

    En fait il s'agit plus de nombre à 1000 chiffres que 100 car c'est pour une application des principes de cryptographie étudiés en cours. ( du genre 286^367 si ce n'est largement plus mais bon ....)

    Alors pour ce qui est du type de mes variables, c'est là je pense que reside le souci, car je les ais tout d'abord déclaré en "double", ce que je pense être une erreur et ensuite en "ulong" mais ce n'est pas assez "spatieux".

  4. #4
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Oulàà, ça dépasse tout ce qui existe par défaut dans les langages de programmation ... tu devrais chercher sur internet des librairies spéciallement faites pour les maths ( j'en connais pas, mais google sera peut être la solution ... )

  5. #5
    Membre émérite Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Par défaut
    il y a des algoritms qui existent pour resoudre le calcul sur les grands nombres, fait une recherche sur goole et implementent les .

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Par défaut
    Ok merci je vais chercher ca de suite et je vous tiens au courant.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Par défaut
    Alors je n'ai pas encore trouvé de librairie mais en fouillant un peu plus le forum j'ai retrouver ce post ce post qui pourrait sans doute me servir.

    Puisqu'en fait si je stocke mes grands nombres dans des tableaux, il doit m'être relativement facil de calculer leur modulo (5141 par ex)... non? (eh oui j'avais aussi oublier de preciser que les calculs que j'effectue entre ces grands nombres ne sont que des modulo... enfin je crois...)

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Par défaut
    Alors juste encore un petit souci pour verifier si ce que je pense faire fonctionne:
    comment fait-on pour separer un nombre en bloc de 9 chiffres (il me semble que c'est la limite autoriser par "int").

    Exemple:
    j'ai un nombre 123456789123546789123456789
    je voudrai le stocker dans un tableau genre:
    nb[0] = 123456789
    nb[1] = 123456789
    nb[2] = 123456789
    Mais pour cela il faut deja decouper le nombre en bloc de neuf chiffres puis les assigner chacun à une "variable" du tableau (nb[0], nb[1], ...), non?

  9. #9
    Membre émérite Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Par défaut
    Citation Envoyé par elephant13 Voir le message
    Alors juste encore un petit souci pour verifier si ce que je pense faire fonctionne:
    comment fait-on pour separer un nombre en bloc de 9 chiffres (il me semble que c'est la limite autoriser par "int").

    Exemple:
    j'ai un nombre 123456789123546789123456789
    je voudrai le stocker dans un tableau genre:
    nb[0] = 123456789
    nb[1] = 123456789
    nb[2] = 123456789
    Mais pour cela il faut deja decouper le nombre en bloc de neuf chiffres puis les assigner chacun à une "variable" du tableau (nb[0], nb[1], ...), non?

    la limite de int n'est pas le nombre de chiffre mais sa valeur:

    tu as int16 uint16 int32 uint32 int64 uint64

    pour int32 (- 2147483647 a 2147483647) pour uint32 (0 a 2147483647 *2 )

    pour int64 (-9,223372,036854775808 a -9,223372,036854775808)
    uint64 ( 0 a -9,223372,036854775808*2)
    vive msdn .

    sinon as-tu fait les recherche sur l'alogrithm sur le calcul des grands nombre?

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Par défaut
    ok,
    J'avais oublier les "int64" mais si je prend "int64" la valeur max c'est : 9,223372,036854775808 donc moi je dis que (pour mon application) c'est limité a 19 chiffres car le nombre "20 fois le chiffre 9" sera trog grand pour cette variable.

    Autrement pour les algorythm ba j'ai herché ce matin mais la je pense qu'en fait vu que je n'ai que un modulo a effectuer sur ces grands nombres je n'en ai pas besoin car comme dit dans le post que j'ai mis en lien:

    a*b [mod n] = (a [mod n]) * (b [mod n]),
    a+b [mod n] = (a [mod n]) + (b [mod n]).
    Donc en remplacant a et b par les valeurs des tableau elevé à des puissance de dix ca doit le faire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment remplir une tres longue chaine de caractere ?
    Par stan314 dans le forum Réseau
    Réponses: 3
    Dernier message: 21/11/2007, 10h42
  2. [VBA-E] Macro tres longue
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 28/10/2006, 21h10
  3. Comment écrire une très longue variable dans un fichier ?
    Par hijodelanoche dans le forum Langage
    Réponses: 8
    Dernier message: 17/11/2005, 16h12
  4. association de donnee tres longue
    Par pitch21 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 21/10/2005, 15h04
  5. [Compilation] Chaine string Tres tres longues
    Par Clorish dans le forum Langage
    Réponses: 9
    Dernier message: 20/07/2005, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo