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

VB 6 et antérieur Discussion :

VB6, puissances et logarithme


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Par défaut VB6, puissances et logarithme
    Bonjour,

    J'ai un petit problème à résoudre en VB6 mais qui est à cheval avec un problème de math, mes cours de math étant loin j'ai un peu de mal...
    Je recherche un moyen le plus propre possible de faire la chose suivante...

    Je vais essayer d'être clair mais ce n'est pas gagné.

    J'ai une liste de valeur que je récupère en vb6 dans une table sql (jusque là tout va bien). Cette liste de valeur est composé de puissances de 2 de 1 à 128 soit 1,2,4,8,16,32,64,128.

    Dans une autre table je récupère d'autres valeurs qui correspondent à des sommes de ces puissances de 2 (a priori pas plus de deux puissance de 2 additionées). A titre d'exemple voici quelqu'unes des valeurs possibles : 192 (128+64), 96 (64+32), 24 (16+8) et ainsi de suite.

    Le but du bout de code que j'essaye de faire (je précise que je recherche quelque chose de propre utilisant les logarithmes et les puissance de 2 pas un truc bricolé, les trucs bricolés je sais faire... trop bien diront certains ...). Donc ce fameux bout de code doit pouvoir à partir de la valeur de la deuxième table (exemple : 192) retrouver les 2 puissances de 2 qui constituent cette valeur (exemple : 128 et 64 pour la valeur 192)

    Je sais que c'est presque plus un problème de math qu'un problème de VB mais je n'ai pas trouvé de section math dans le forum et la solution doit pouvoir être retranscrite en vb6.

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Citation Envoyé par koktel_dfr Voir le message
    je précise que je recherche quelque chose de propre utilisant les logarithmes et les puissance de 2 pas un truc bricolé, les trucs bricolés je sais faire... trop bien diront certains ...). Donc ce fameux bout de code doit pouvoir à partir de la valeur de la deuxième table (exemple : 192) retrouver les 2 puissances de 2 qui constituent cette valeur (exemple : 128 et 64 pour la valeur 192)
    Ici, ce n'est pas le marché de Triffouilis-les-Oies et il n'y a personne qui sait écrire du code "propre" (car, bien entendu tout étant subjectif, alors quid du code "propre" .... )

    Sérieusement, propose nous déjà tes pistes (code à l'appui, bien sûr), et si ça coince, on verra ce qu'on peut faire, mais nous n'écrivons pas de code à la demande, désolé ....

  3. #3
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Viens mettre les doigts sur mon clavier, tu sauras à quoi ressemble du code propre

    La solution passe par les opérateurs logiques :
    R1 est la plus grande puissance < S (Sum)
    S (Sum) XOR R1 => R2

    Soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function GetR1(Sum As Long) As Long
        Dim R As Long
     
        For x = 1 To 7
            R = 2 ^ x
            If R > Sum Then Exit Function
            GetR1 = R
        Next
    End Function
    R1=GetR1(Sum)
    R2=Sum XOR R1

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    la fonction qui serait du type :

    Y = (a^x1) + (a ^x2) + b

    où a et b seraient connus (2 et - 192 dans l'exemple donné)

    ne connaissant pas de recherche de solution (y = 0) autre que par tâtonnements (donc une boucle et une expression conditionnelle), il n'y aura jamais de solution totalement "propre", si l'on entend par cet adjectif une solution purement "algébrique"

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    il n'y aura jamais de solution totalement "propre", si l'on entend par cet adjectif une solution purement "algébrique"
    Merci d'avoir précisé ma pensé ucfoutu effectivement c'est bien à une solution algébrique que je pensais.

    Citation Envoyé par ThierryAIM
    Sérieusement, propose nous déjà tes pistes (code à l'appui, bien sûr), et si ça coince, on verra ce qu'on peut faire, mais nous n'écrivons pas de code à la demande, désolé ....
    Je me suis peut être mal exprimé, en tout cas on s'est mal compris, je ne cherchais pas a ce qu'on me fasse mon code ce que je demandais c'étais plutôt un algo propre (solution algébrique). J'aurais pu poster ça sur un forum mathématique mais je ne voulais pas qu'on me sorte une formule venu de Mars que je ne pourrais pas utliser en VB... La seule piste que je pouvais fournir était le sujet de mon post car je n'avais aucune idée concernant cette éventuelle solution algébrique mis a part le fait que cela passait à un moment ou à un autre par les puissance de 2 et/ou les logarithmes.

    Citation Envoyé par DarkVader
    La solution passe par les opérateurs logiques
    Je n'avais pas du tout pensé à ça... a priori il n'existe pas de solution totalement algébrique je pense que je vais donc tester ta solution car elle est en tout cas beaucoup mieux que les délires dans lesquels j'étais parti... merci de ton aide.

    je vais également tester ta solution ucfoutu car ca m'a l'air pas mal du tout.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 63
    Par défaut
    Bonjour,
    Il me semble que les puissances de 2 correspondent à un bit bien précis en binaire :

    exemple: "192" decimal = "C0" en hexa = "1100 0000" en binaire

    1000 0000 = 128
    0100 0000 = 64

    Il suffirait donc de transcrire en binaire.
    Si cela peut être utile ...

    Eric.

  7. #7
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Citation Envoyé par koktel_dfr Voir le message
    Le but du bout de code que j'essaye de faire (je précise que je recherche quelque chose de propre utilisant les logarithmes et les puissance de 2 pas un truc bricolé, les trucs bricolés je sais faire... trop bien diront certains ...)
    Citation Envoyé par DarkVader Voir le message
    Viens mettre les doigts sur mon clavier, tu sauras à quoi ressemble du code propre
    Juste pour le fun de la question Qu'est un code propre ? je viens de tomber dessus

Discussions similaires

  1. [VB6] puissance nombre
    Par toutyx dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 19/06/2007, 09h23
  2. [VB6] mettre en commentaires...
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/04/2004, 15h15
  3. [VB6] [MDI] Signaler la fermeture d'une fille à la mère
    Par cpri1shoot dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/04/2004, 08h57
  4. Réponses: 1
    Dernier message: 22/08/2002, 17h00
  5. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05

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