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

 C Discussion :

erreur de segmentation


Sujet :

C

  1. #21
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Bonjour ,
    bon maintenant tout marche nikel, sauf que le code n'est pas optimisé: le probleme est dans le calcul de la frequence : a chaque iteration on relit tout le fichier pour determiner la frequence d'un mot: c'est redondant
    la solution est de metre toutes les seqeunces des mots dans une table de hachage .
    Le jour est le père du labeur et la nuit est la mère des pensées.

  2. #22
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Après discussion <strike>MSN</strike> Windows Live, il semblerait que la meilleure méthode soit de parser le fichier une fois pas Nseq, en oubliant complètement à chaque fois les données des séquences précédentes (on les écrit dans le fichier de sortie, et hop).

    En clair, faire un passage pour les séquences de 1, puis un passage pour les séquences de 2, un pour les séquences de 3, etc.
    Les fonctions de hachage et de liste n'auront pas à être modifiées, mais si l'on se retrouve un peu trop short en mémoire, il faudra faire des chaînons de taille variable.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #23
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Après discussion <strike>MSN</strike> Windows Live, il semblerait que la meilleure méthode soit de parser le fichier une fois pas Nseq, en oubliant complètement à chaque fois les données des séquences précédentes (on les écrit dans le fichier de sortie, et hop).

    En clair, faire un passage pour les séquences de 1, puis un passage pour les séquences de 2, un pour les séquences de 3, etc.
    Les fonctions de hachage et de liste n'auront pas à être modifiées, mais si l'on se retrouve un peu trop short en mémoire, il faudra faire des chaînons de taille variable.
    Merci Medinoc,
    c'est à dire maintenant j'extrait toutes les sequences dans des fichiers : liste des seqeunecs de 2mots dans 1 fichier, seqeunecs de 3mots dans 1 fichier, ...
    comme ca ?
    Le jour est le père du labeur et la nuit est la mère des pensées.

  4. #24
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Tu extraits tout du même fichier, et pour l'écriture des résultats, ben... c'est toi qui choisis...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #25
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    bonjour,
    ben j'ai une idée et je sais pas si c'est la bonne ou pas :
    si on enregistre pour chaque mot dans la table de hachage sa liste de position dans la phrase où il apparait, comme ca on evite le retour à chaque fois pour relir tt le texte pour savoir la frequence pour chaque sequence de mot.
    non,?
    Le jour est le père du labeur et la nuit est la mère des pensées.

  6. #26
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Je ne pense pas que ça soit faisable.
    Laisse-moi t'expliquer ma théorie en prenant comme exemple les 3seq:
    • Début de lecture
    • On lit les mots en gardant en mémoire les trois derniers mots lus
    • À chaque fois qu'on lit un mot, on crée une chaîne avec les trois derniers lus
    • On ajoute/incrémente cette chaîne de trois dans la table de hachage
    • Fin de lecture
    • Maintenant, dans la table de hachage, on a tous les 3seq et leurs fréquences!
    • On nettoie, et on écrit le tout dans un fichier

    Maintenant, si le fichier n'est pas assez répétitif, il est possible que ça ne tienne pas en mémoire, auquel cas il faudra ruser pour le stockage des nseq dans la table (par exemple, stocker tous les mots dans une autre table de hachage, et stocker seulement des listes de pointeurs dans la table de hachage de nseq.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #27
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    merci Medinoc, mais là ya des point que j'arrive pas à les saisir.
    bon je suis au stade j'ai mon fichier texte qui contient le texte, et la j'ai extrait les liste des 2 seq que j'ai stockes dans une table de hachage avec leurs frequence et qui sont filtres .
    bon la je dois creeer les liste des 3 seq tt en faisant la jointure des listet des 2 seq ensemble.
    là je bloque sincerement
    j'attends ta reponse
    cordialement cyrine
    Le jour est le père du labeur et la nuit est la mère des pensées.

  8. #28
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Comme je te l'ai dit,
    maintenant on n'utilise plus la liste des 2seq pour faire les 3seq: On relit le fichier à la place.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #29
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    D'accord Medinoc, c'est a dire je refais le meme processus que j'ai fait pour extrait les 2seq, et là la question qu'on pose c'est est ce qu'on stocke des nseqdans des table de hachage separement?
    et là un autre probleme c'est comment faire pour faore l'elagage entre les liste de n sequence et le liste des n-1 sequence sachant qu'il se trouvent pas dans la meme structure de données ?
    tu vois ce que je veux dire?
    Le jour est le père du labeur et la nuit est la mère des pensées.

  10. #30
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Euh...
    En fait, non, je ne vois pas. J'avais complètement oublié l'élagage...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #31
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Euh...
    En fait, non, je ne vois pas. J'avais complètement oublié l'élagage...
    donc pas d'idées?
    Le jour est le père du labeur et la nuit est la mère des pensées.

  12. #32
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    bonjour,
    enfin je pense que je vais changer un peu dans l'idee de l'algo de facon que j'extrait pour chaque paire des mot leurs listede position(num-ligne, position dans la phrase), comme ca je relit pas tt le texte à chaque fois pour determiner la frequence 'une sequence de mots: on peut la determiner à partir de la liste des positions .
    non?
    Le jour est le père du labeur et la nuit est la mère des pensées.

  13. #33
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    La fréquence, on peut la déterminer directement à partir de la fréquence stockée.
    D'ailleurs, dans les dernières versions, la liste de positions n'était plus qu'un souvenir...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #34
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    La fréquence, on peut la déterminer directement à partir de la fréquence stockée.
    D'ailleurs, dans les dernières versions, la liste de positions n'était plus qu'un souvenir...
    Bonjour Medinoc,
    merci
    oui c'est vrai la liste des position n'est qu'un souvenir de la version de la version du mois de juin .
    mais là je comprends pas ton idee de dire qu'on peut determiner la frequence à partir des celles stockees.
    j'ai la frequence seulement des liste de 2 mots, mais pour les autres je sais pas la determiner?
    cordialement cyrine
    Le jour est le père du labeur et la nuit est la mère des pensées.

  15. #35
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Je reprends au vol. Mais une solution ne serait pas tout simplement de calculer tes fréquences à la fin dans un seul parcours de ton fichier?

  16. #36
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Je reprends au vol. Mais une solution ne serait pas tout simplement de calculer tes fréquences à la fin dans un seul parcours de ton fichier?
    merci 3D Archi, mais comment ca se fait en 1 seul parcours?

    si tu peux me donner un exemple ?
    merci
    Le jour est le père du labeur et la nuit est la mère des pensées.

  17. #37
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Mais n'a-t-on pas déjà la fréquence de toute façon quand on fait des insertions/incrémentations dans la table de hachage pour toute séquence qu'on trouve ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  18. #38
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    1/Sequence courante = vide
    2/Tant que fichier non épuisé
    2.1/ Lire mot
    2.2/ Ajouter mot à sequence courante
    2.3/ Pour chaque sous-séquence de la séquence courante (une sous-séquence par de la séquence et enlève des mots à gauche):
    2.3.1/ Dans la liste de séquences de même taille que la sous-séquence courante: recherché le match et ++ de sa fréquence.
    2.4/ La séquence courante devient la plus grande sous-séquence pour laquelle un match a été trouvé.

    Non?

  19. #39
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    oui, pour l'instant j'ai seulement la table de hachage qui contient la liste des 2 seq, bon là j'hesite est ce que j'extarit les autes sequence et les mettre dans la meme table de hachage ou bien chaque type de sequence dans une table de hachage à part??
    tu vois mon probleme ,
    Le jour est le père du labeur et la nuit est la mère des pensées.

  20. #40
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    1/Sequence courante = vide
    2/Tant que fichier non épuisé
    2.1/ Lire mot
    2.2/ Ajouter mot à sequence courante
    2.3/ Pour chaque sous-séquence de la séquence courante (une sous-séquence par de la séquence et enlève des mots à gauche):
    2.3.1/ Dans la liste de séquences de même taille que la sous-séquence courante: recherché le match et ++ de sa fréquence.
    2.4/ La séquence courante devient la plus grande sous-séquence pour laquelle un match a été trouvé.

    Non?

    oula c'est trop compliqué comme idée, oubien c'est moi qui reflechit trop reduit
    jai
    bonjour les amis du monde
    les amis


    voila les 1sequence:
    bonjour les (1)
    les amis (2)
    amis du (1)
    du monde (1)
    là je bloque
    comment extraire
    bonjour les amis en determinant sa frequence sans avoir à acceder à chaque fois au fichier,
    Le jour est le père du labeur et la nuit est la mère des pensées.

Discussions similaires

  1. Erreurs de segmentation !
    Par anti-conformiste dans le forum Applications et environnements graphiques
    Réponses: 16
    Dernier message: 18/10/2005, 11h11
  2. Erreur de segmentation
    Par Trunks dans le forum C
    Réponses: 3
    Dernier message: 06/10/2005, 18h28
  3. Erreur de segmentation (Inconnue)
    Par Dark-Meteor dans le forum C
    Réponses: 5
    Dernier message: 08/09/2005, 13h42
  4. [Dev-C++] Erreur de segmentation...
    Par sas dans le forum Dev-C++
    Réponses: 11
    Dernier message: 26/03/2005, 14h25
  5. erreur de segmentation
    Par transistor49 dans le forum C++
    Réponses: 10
    Dernier message: 15/03/2005, 11h18

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