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

Calcul scientifique Python Discussion :

Problème d' OVERFLOW avec python


Sujet :

Calcul scientifique Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Par défaut Problème d' OVERFLOW avec python
    Bonjour,

    Je débute avec python, j'ai définit un array de 0 à 10000 et je l'ai remplit avec des chiffres de 2 à 104743.

    J'exécute après un programme qui me calcule des puissance, par exemple pow(2,tableau[i]).
    le problème que ca bloque et m'affiche overflow.
    J'ai vu que le maximum pour un float est ~e+300.
    Ma question est:
    y'a t'il une variable avec plus de précision ou peut on définir avec python une variable et lui donner plus de précision (je répéte je suis super débutant)

    J'ai vu qu'il y'a une fonction Decimal(), je ne sais pas si ca peut m'aider.

    Voila, je suis partant pour toutes vos suggestions et vos réponses.

    Merci.

    +++
    LabChNe

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    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 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Bizarre: 2 à la puissance 104743 se calcule bien en Python, et donne (en moins d'une seconde) un nombre composé de 31531 chiffres.

    Tant que tu restes en nombres entiers, Python a la capacité de calculer des nombres très longs, limités seulement par le PC (rapidité et taille mémoire). Peut-être as-tu dépassé la mémoire disponible.

    Autre possibilité: Python supporte la récursion, mais avec limite (pile d'environ 1000 par défaut). On peut allonger cette pile si nécessaire.

    C'est dès que tu as besoin de calculer en nombres à virgule flottante que le module decimal permet de faire tout ce qu'on veut pratiquement sans limites autres que celles du PC.

    Tyrtamos

  3. #3
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Par défaut
    Rebonjour,

    Merci tyrtamos pour ta réponse, je suis sur windows vista système 32 bits 2,20 GHz et 4 Go de mémoire vive et j'ai ca:
    >>> pow(2,1111)

    Traceback (most recent call last):
    File "<pyshell#73>", line 1, in <module>
    pow(2,1111)
    OverflowError: math range error


    (en incluant la bibliothèque math)
    (J'ai installé la version python 2.7)

    Je ne sais pas la configuration de ton pc ni sur quelle version de python tu travailles.

    +++
    LabChNe

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,
    math.pow n'est pas la même chose que le builtins pow.
    Essayez sans import de math.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Par défaut
    waw,
    comme par magie, je bloque depuis ce matin.
    Merci wiztricks.

    A la prochaine question.

    +++
    LabChNe

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/12/2009, 16h00
  2. problème d'overflow avec variable type double
    Par ben83 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 15/02/2007, 09h55
  3. Problème d'encodage avec Python
    Par tse_tilky_moje_imja dans le forum Général Python
    Réponses: 2
    Dernier message: 22/02/2006, 14h36

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