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 :

Méthode pour résoudre cet exercice


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 58
    Par défaut Méthode pour résoudre cet exercice
    Bonjour à tous.
    J'ai exercice dans lequel on demande d'écrire un algo qui m'est impossible.

    Voilà l'exercice :

    On a une très grande échelle.On dispose de 2 vases identiques et on souhaite déterminer à partir de quel échelon un vase se casse si on le laisse tomber.On appelle n cet échelon.On ne peut bien entendu pas réutiliser un vase cassé.
    La complexité d'une solution est évaluée en fonction du nombre de lancés des vases déjà effectués,avec comme paramètre n,l'échelon où le vase se casse.

    1°) Proposer un algo pour trouver le bon échelon et donnez sa complexité.
    2°)Si ce n'était pas déjà le cas,proposer une solution mieux que linéaire pour trouver le bon échelon.

    Si quelqu'un voit comment résoudre ce problème,merci de m'aider.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Par défaut
    recherche par dichotomie :

    tu te place au milieu de ton echelle.
    si le vase casse tu considère que le barreau en dessous et tu recommence
    si le vase ne casse pas tu considère que les barreau au dessus et tu recommence

    tu itères jusqu’à ce qu'il ne reste plus qu'un barreau

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 227
    Par défaut
    Ici, on a 2 vases à disposition.
    Imaginons une échelle avec 100 barreaux. Dans une dichotomie, on teste le 50ème échelon, imaginons que le vase casse.
    La bonne hauteur est donc un n° entre 1 et 49. Dans une dichotomie classique, on teste le 25ème échelon, et imaginons qu'à nouveau, le vase casse.
    On n'a plus de vase à disposition, et on ne sait pas quel échelon est la bonne solution. On sait juste que la bonne réponse est entre 1 et 24.

    Il faut donc adapter un peu la dichotomie.

  4. #4
    Membre Expert
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Par défaut
    C'est un problème classique … et la dichotomie n'est pas la meilleure stratégie. Supposons que l'échelle possède n barreaux. Avec une stratégie dichotomique on arrive dans le pire des cas à n/2 (aux arrondis près) essais, c'est le cas où le premier vase casse au premier essai (1 essai) il reste n/2-1 barreaux à essayer. Par exemple avec 100 barreaux, le premier vase casse au barreau 50, et dans le pire des cas le second ne se casse qu'au barreau 49 → 50 essais en tout.

    Imaginons maintenant qu'on essaie tous les k barreaux. Dans le pire des cas le premier vase cassera après n/k barreaux avec k-1 essais supplémentaires. L'idée sera de minimiser n/k+k-1 … par exemple avec 100 barreaux on prend k=10, au pire des cas le premier vase ne se cassera qu'au barreau 100 (10 essais), nécessitant au pire encore 9 essais (de 91 à 99) pour un total de 19 essais ; on peut aussi prendre k de 8 à 13 pour obtenir 19 essais.

    Dans un cadre plus général on peut partir d'une fonction f(x) strictement croissante et positive qui indique quel barreau est choisi pour le premier vase au xième essai. En gros le pire des cas est le maximum de S(k) = {i+f(i,k)-f(i-1,k)-1} i>0 avec f(i)<=n avec k un paramètre fixé définissant la stratégie. C'est une formule approximative évidemment. Ensuite il faut minimiser S(k) en fonction de k pour avoir la meilleure stratégie en fonction de k.

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 227
    Par défaut
    Je pense (mais pas vérifié) que la bonne optimisation est de viser à racine(n) : Mais quid si on généralise à k vases restants ?
    Je pense que cette question va m'empêcher de dormir !

  6. #6
    Membre Expert
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Par défaut
    oui, la dérivée de n/k+k-1 par rapport à k est (k²-n)/k² qui s'annule en √n. Maintenant ça ne veut pas dire que f(x)=x/n est la meilleure stratégie pour tout n …

Discussions similaires

  1. Aide pour résoudre un exercice d'adressage IP
    Par souley9 dans le forum Protocoles
    Réponses: 18
    Dernier message: 27/10/2013, 19h05
  2. Réponses: 2
    Dernier message: 13/12/2010, 22h06
  3. aidez moi à résoudre cet exercice
    Par miroush dans le forum Débuter
    Réponses: 6
    Dernier message: 20/02/2010, 19h26
  4. Réponses: 8
    Dernier message: 04/12/2008, 11h14
  5. Réponses: 5
    Dernier message: 17/03/2008, 15h48

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