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

Algorithmes et structures de données Discussion :

Logarithme de base quelconque


Sujet :

Algorithmes et structures de données

  1. #1
    Membre éclairé Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par défaut Logarithme de base quelconque
    Bonjour,

    J'ai quelques difficultés à concevoir un algorithme pour un logarithme de base quelconque (autre que décimal, binaire et népérien). Celui-ci, a priori inconcevable, est censé être la résultante d'essais successifs.

    Exemple :

    (-5)^n = -3125

    Où n est à déterminer : à la calculatrice, par exemple, des essais successifs permettent de déduire que n vaut 5, mais comment automatiser le processus, telle est la problématique du programme (qui sera adapté en basic Casio et/ou en C++).

    La prise en charge des nombres négatifs en l'occurence, me pose problèmes... auriez-vous une idée ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    En fait, si tu as une puissance dont le résultat est négatif, c'est que le nombre en question est négatif (et donc pas lié avec la puissance).

    Si tu fait le calcul dans le positif ça doit pouvoir passer.

    En réécrivant (-5)^n en (-1 * 5)^n puis en (-1)^n * 5^n ça me parait pas mal. D'une part, ça peut t'informer que n est impair, ensuite ça te permet de faire ton calcul dans le positif.

  3. #3
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut Logarithme de base quelconque
    Salut.
    En fait, c'est tout simple si tu connais la formule

    log(base a) z = ln z / ln a

    Jean-Marc Blanc

  4. #4
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Par défaut
    Bonjour,

    le logarithme discret est l'inverse de celui de l'exponentiel dont l'équation est :
    a^x = b ==> trouver x ? Pas d'algorithme pour résoudre ce problème !!!

    Au revoir.

  5. #5
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Pas d'algorithme pour résoudre ce problème !!!
    http://en.wikipedia.org/wiki/Pohlig-Hellman_algorithm

  6. #6
    Membre Expert Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Par défaut
    Promu@ld rules!

  7. #7
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut
    (-1)^n * 5^n
    ça marche pas, c'est (-1)^(n/2)*5^(n/2)...

    Citation:
    Pas d'algorithme pour résoudre ce problème !!!
    http://en.wikipedia.org/wiki/Pohlig-Hellman_algorithm
    Plus simplement
    Tu peut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    -1*5^n = -3125
    5^n = 3125
    ln(5^n) = ln(3125)
    n*ln(5) = ln(3125)
    n = ln(3125)/ln(5)
    n = 5
    Bonne chance

  8. #8
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    ça marche pas, c'est (-1)^(n/2)*5^(n/2)...
    Pardon ?

    (a*b)^n = a^n*b^n

  9. #9
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par dahtah Voir le message
    ça marche pas, c'est (-1)^(n/2)*5^(n/2)...
    Aux dernières nouvelles (-5)^n restait égal à (-1)^n * 5^n....
    Maintenant si tu m'expliques que (-5)^2 == (-1)^1 * 5^1 == -5 il faudra que tu me le justifie un petit peu.

    --
    Jedaï

  10. #10
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut
    Citation:
    ça marche pas, c'est (-1)^(n/2)*5^(n/2)...
    Pardon ?

    (a*b)^n = a^n*b^n
    Autant pour moi, j'ai répondu trop vite.

    De plus, ce que j'ai mis n'est valable que pour n impaire.
    pour n paire pas de solution, car ln(-3125) n'existe pas.

  11. #11
    Membre éclairé Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par défaut
    Excusez l'absence, j'ai eu beaucoup de travail : ce sujet m'était même sorti de la tête !

    En tout cas, merci de votre aide. En ce qui concerne le lien de Promu@ld, c'est sûrement la solution mais cela me semble un peu trop compliqué (un simple regard a suffi pour établir cette constatation)... n'y a-t-il donc pas de solution simple pour le déterminer ? En se redirigeant vers des essais successifs, comme je l'avais pensé, que proposeriez-vous comme algorithme ?

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

Discussions similaires

  1. Programme décimal vers base quelconque
    Par tamerla dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 28/07/2014, 21h39
  2. Réponses: 4
    Dernier message: 18/05/2010, 11h19
  3. Logarithme en base 2
    Par Mchupakabra dans le forum Langage
    Réponses: 5
    Dernier message: 23/10/2007, 19h17
  4. Librairie de connexion à une base quelconque
    Par mister3957 dans le forum C++
    Réponses: 5
    Dernier message: 18/05/2006, 12h16
  5. Connexion à une base de donnée quelconque
    Par mister3957 dans le forum C++
    Réponses: 5
    Dernier message: 03/04/2006, 23h00

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