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 :

Calcul d'un invariant de boucle


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1
    Par défaut Calcul d'un invariant de boucle
    Salut! Est-ce que quelqu'un saurait donner l'invariant de boucle du programme suivant: (le programme teste si le mot est un palindrome)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int i:=0;
    int j:=n-1;
    boolean ok := true;
    while i<=j ET ok, do
        if a[i]=a[j]
        then
            i=i+1
            j=j-1
        else
          ok:=false
        endif
    done

    Merci beaucoup!!!!!!!

  2. #2
    Membre chevronné
    Femme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2009
    Messages : 236
    Par défaut
    Dans de lointains souvenirs d'algo je penserai que l'invariant vaut a[i]=a[j] en notant que j=n-(i+1) ,histoire de symétrie. Donc la complexité dans le pire des cas est de O(n/2), le pire des cas étant que le mot sot un palindrome. Mais la preuve est à faire ...

  3. #3
    Membre Expert
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Par défaut
    Citation Envoyé par Malinaka Voir le message
    Dans de lointains souvenirs d'algo je penserai que l'invariant vaut a[i]=a[j] en notant que j=n-(i+1) ,histoire de symétrie. Donc la complexité dans le pire des cas est de O(n/2), le pire des cas étant que le mot sot un palindrome. Mais la preuve est à faire ...
    Non, ce n'est pas ça.
    L'invariant est quelque chose du genre "Les i premiers caractères de a sont les mêmes que les i derniers caractères de a". Je te laisse le soin de le formaliser

  4. #4
    Membre chevronné
    Femme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2009
    Messages : 236
    Par défaut
    Je te crois sur parole, je me rapelle surtout de vagues formules mathématiques de mes cours d'algo... La seule chose qui m'ait marqué c'est la compléxité

  5. #5
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Bonjour,
    l'invariant de boucle n'est-il pas une propriété toujours vraie à chaque itération. ? Ici, pour une certaine fonction f, ce serait f(i,j)=0.

  6. #6
    Membre Expert
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Par défaut
    heu pourquoi f(i,j)=0 et qui est f ? je ne vois pas ce que tu veux dire mais peut-être est-ce parce que ma journée a été longue

    Sinon, pourquoi l'invariant "Les i premiers caractères de a sont les mêmes que les i derniers caractères de a". ne serait-il pas vrai à chaque itération de la boucle ?

  7. #7
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Oula ... ma journée a été longue aussi

    Citation Envoyé par prgasp77 Voir le message
    Ici, pour une certaine fonction f, ce serait f(i,j)=0.
    J'utilisais une fonction non définie pour éviter de donner un résultat de but en blanc ; il s'agissait de l'addition tout simplement : i+j=n pour chaque itération.

    Citation Envoyé par Franck Dernoncourt Voir le message
    pourquoi l'invariant "Les i premiers caractères de a sont les mêmes que les i derniers caractères de a". ne serait-il pas vrai à chaque itération de la boucle ?
    C'est tout a fait vrai, et cet invariant a plus de porté que celui que je propose.

    Si vous me cherchez, je serai dehors.

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 77
    Par défaut
    C'est que la distance entre i et le début du tableau est toujours égale à la distance entre j et la fin du tableau.

    Par-contre tu es dans quel groupe ?

Discussions similaires

  1. calculer le resultat d'une boucle
    Par karpe dans le forum Langage
    Réponses: 2
    Dernier message: 04/01/2012, 18h22
  2. calcul des extrémités d'une boucle par fonction
    Par polo92 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/12/2011, 15h13
  3. Invariant de boucle
    Par larchicha dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 17/11/2011, 12h02
  4. [XL-2003] macro calcul d'une moyenne avec boucle évolutive
    Par mia73 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/07/2010, 10h49
  5. Calcul élément de trajectoire, dans boucle multiple
    Par baptbapt dans le forum Général VBA
    Réponses: 27
    Dernier message: 02/08/2006, 09h48

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