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

Python Discussion :

probleme de taille avec exponentielle


Sujet :

Python

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 44
    Points : 17
    Points
    17
    Par défaut probleme de taille avec exponentielle
    Bonjour a tous, je suis bloquer par un petit probleme que je pense simple pour vous. En fait j'ai remarquer avec python qu'on ne peut pas calculer avec exponentielle des valeur au dessus d'un certain seuil. Par exemple, quand je fait exp(705) sa me donne 1.505...e+306 mais quand je tente exp(710) sa me dit OverflowError: math range error!!!!

    Savez vous comment controurner ce probleme car j'ai vraimen besoin de calculer des valeurs de ce type(aussi grande voir plus)?

    MERCI

  2. #2
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Il faut utiliser le type "Decimal" du module "decimal" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    from decimal import Decimal
     
    print(Decimal(800).exp())
    Résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2.726374572112566567364779546E+347
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    merci pour la reponse et la rapidite!!!!

    bonne soiree

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    heu non pardon en fait sa ne marche pas python me dit la chose suivante apres avoir fait exactement la meme chose que toi:


    'Decimal' object has no attribute 'exp'

    ??

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    Je precise que je travail avec le module Nmueric... c'est peut etre important!!

  6. #6
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Avec le module decimal, essaye:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    decimal.ExtendedContext.power(decimal.Decimal("5"),decimal.Decimal("3"))
    Ce qui renvoie:

    Infos ici: http://pydoc.org/2.5.1/decimal.html

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  7. #7
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Quelle est la version du runtime Python ?

    Sur les runtimes CPython 2.5.1 et 3.0 ce code fonctionne.

    Sur d'anciennes versions de Jython, 2.2.1 par exemple, le module est absent.

    Edit : ça fonctionne sous Jython 2.5b3
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  8. #8
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    En creusant un peu: la fonction exp() existe (python 2.5, module decimal):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    print decimal.ExtendedContext.exp(decimal.Decimal("5000"))
    Decimal("2.96762838E+2171")
    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    Bonjour,
    en fait je travail avec python 2.4.4 donc je vient d'essayer la fonction donnée et cela ne fonctionne pas.Python me retourne : 'Context' object has no attribute 'exp'

  10. #10
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Effectivement, mais power existait déjà dans ta version: http://pydoc.org/2.4.1/decimal.html.

    Il ne te reste plus qu'à trouver une valeur de e compatible avec la précision de tes calculs. Par exemple 2.718 281 828 459 045 235 360 287 4.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  11. #11
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    ouzi mais le probleme ne viendrait il pas plutot du fait que je ne puisse associer les fonctionalités du module decimal et la fonction exp???

  12. #12
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Si tu as regardé la page de doc (module decimal python 2.4.1) dont je t'ai donné l'adresse, tu as vu que exp n'existe pas, mais que power si.

    Pour calculer e à la puissance 5000:

    Avec Python 2.5:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    from decimal import *
    exposant = Decimal("5000")
     
    print ExtendedContext.exp(exposant)
    Et avec Python 2.4.4:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    from decimal import *
    exposant = Decimal("5000")
    e_dec = Decimal("2.7182818284590452353602874")
     
    print ExtendedContext.power(e_dec, exposant)
    Les 2 donnant, bien entendu, le même résultat:

    Les calcul sont faits par défaut avec n=28 chiffres, mais tu peux le modifier avec getcontext().prec=n
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  13. #13
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 44
    Points : 17
    Points
    17
    Par défaut
    ok merci beaucoup sa fonctionne tres bien...je pense que j'avais pas compris la premiere fois!!

    Enfin encore merci pour ton aide en tout cas!!!

Discussions similaires

  1. Probleme de taille du linklabel avec mousehover
    Par oami89 dans le forum VB.NET
    Réponses: 2
    Dernier message: 28/02/2011, 01h06
  2. Probleme de taille fichier excel avec POI
    Par stratocasters dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 31/03/2010, 18h13
  3. probleme de taille avec sql server 2000
    Par sergio122 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 13/02/2006, 09h57
  4. Problème de taille avec les tables
    Par Angelico dans le forum Paradox
    Réponses: 2
    Dernier message: 27/12/2004, 18h38
  5. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26

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