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 :

Division avec math.ceil() Arrondir supérieur


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Amateur Informatique
    Inscrit en
    Décembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Amateur Informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 17
    Points : 19
    Points
    19
    Par défaut Division avec math.ceil() Arrondir supérieur
    Bonjour à vous,

    J'ai jamais eu de problème auparavant concernant ce magnifique module.
    Ce n'est pas la première fois que je l'utilise.

    Je ne suis pas fou, du moins je crois.

    J'essaye de diviser le nombre de fichiers dans un répertoire, par le nombre de processeurs que je possèdes.

    À l'aide du module mpi4py.
    mais ce n'est pas important. ( je crois)

    J'ai admettons 76 fichier pour 20 cores.

    normallement 76/20 = 3.8 = 4

    avec math.ceil(len(nb_files) / nb_cores )
    ou round(len(nb_files) / nb_cores )
    J'obtiens toujours 3 ou 3.000000

    Même si je met tout mes variables en float() ou int()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
     
    # -*- coding: utf-8 -*-
    #nombre_fichier_par_cores.py
    import os
    import math
     
    #Nom du dossier 
    mydir = os.getcwd()
     
    nb_files_sans_func = 76
     
     
    #Fonction lister les fichiers
    def list_files(dossier):
        path, dirs, files = os.walk(dossier).next()
        return files
     
    if os.path.isdir(mydir):
        size = 20 #Admettons que je suis dans MPI et que j'ai 20 cores
        all_files = list_files(mydir) # Liste de tous les fichiers
        nb_files = len(all_files) # Ce qui me donne 76 fichiers
     
        #Les testes
        totale_par_cores = math.ceil(nb_files / size) #Me donne 3
        totale_par_cores2 = round(nb_files / size ) # Donne 3
        total = float()
        total = math.ceil(len(all_files) / size ) #Me donne 3.00000
     
        print size # 20
        print nb_files # 76 ( pour les tests prennez nb_files_sans_func )
        print nb_files / size # 3 .... jamais 3.8 
     
        print totale_par_cores # si plus de fichier que de cores
        print totale_par_cores2 # pareil
     
        print total
     
        print'-------'
     
        print nb_files_sans_func / size
        print math.ceil(nb_files_sans_func / size)
     
        #Je comprend plus rien, j'ai jamais eu de problème avant.
    else:
        print'nothing'
    Avec tous la documentations concernant ce module, je me suis presque demandé si c'étais mon python2.7 qui était perdu. J'ai donc essayer sur deux machines, toujours le même résultat.

    Merci pour votre aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Bonjour,
    Peut-être que la "/" de deux entiers renvoit un entier sous Python 2.x. :-D
    70/20=>3
    70.0/20.0=>3.9

    Clodion

  3. #3
    Membre à l'essai
    Homme Profil pro
    Amateur Informatique
    Inscrit en
    Décembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Amateur Informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    ohh, mais vous êtes génial !!!!!



    Merci beaucoup haha

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

Discussions similaires

  1. décimales avec Math.ceil
    Par lau06 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/10/2011, 21h57
  2. précision avec math.ceiling
    Par Mario Rousson dans le forum VB.NET
    Réponses: 3
    Dernier message: 09/09/2011, 23h21
  3. Réponses: 6
    Dernier message: 26/10/2006, 16h17
  4. Réponses: 4
    Dernier message: 29/08/2006, 15h07
  5. Réponses: 8
    Dernier message: 21/11/2005, 17h18

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