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

Caml Discussion :

[exercice] décoder le codage de Vigenere


Sujet :

Caml

  1. #1
    Inactif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Points : 25
    Points
    25
    Par défaut [exercice] décoder le codage de Vigenere
    Bonjour,
    Dans le cadre d'un exercice (disponible ici ), mon but est de décoder le codage de Vigenere.
    Je voudrais que vous m'aidiez à comprendre l'énoncé et me dire si mes procédures sont correctes. J'ai réussi à faire les 8 premieres questions sans probleme.

    Pour les 5 dernieres, je ne comprends pas tres bien l'énoncé : s'il y a par malheur une repetition de 3 caracteres qui ne provient pas d'une repetition de 3 caracteres dans le texte initial, alors on trouvera tres certainement un pgcd de 1. D'autant que le texte est supposé suffisament long, donc il y a de grandes chances qu'une erreur de ce type existe. J'ai vérifié cette loi expérimentalement, et je trouve un pgcd de 1. Si vous comprenez l'énoncé mieux que moi, merci de m'aider.

    Sinon, voici les procédures que j'ai créées, dites moi si ça va ou pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    let pgcdDesDistancesEntreRepetitions t' n i=
    	let res=ref 0 and i0=t'.(i) and i1=t'.(i+1) and i2=t'.(i+2) in
    		for j=i+3 to n-3 do
    			if ( t'.(j)=i0 && t'.(j+1)=i1 && t'.(j+2)=i2 ) then
    				res:=(pgcd (!res) (j-i))
    		done;
    !res;;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    let longueurDeLaCle t' n =
    	let res= ref 0 in
    	for i=0 to n-3 do
    		res:= pgcd (!res) (pgcdDesDistancesEntreRepetitions t' n i)
    	done;
    if !res=0 then failwith "texte trop court. pas assez de repetitions pour determiner la longueur de la clé" else !res;;

    Voilà, merci pour votre aide.

  2. #2
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Citation Envoyé par elishac Voir le message
    S'il y a par malheur une repetition de 3 caracteres qui ne provient pas d'une repetition de 3 caracteres dans le texte initial, alors on trouvera tres certainement un pgcd de 1. D'autant que le texte est supposé suffisament long, donc il y a de grandes chances qu'une erreur de ce type existe.
    Salut,

    lis-mieux l'énoncé

    Citation Envoyé par énoncé
    Dans la suite de l'énoncé, on ne considère que des séquences de taille 3 en supposant que toute répétition d'une séquence de trois lettres dans t' provient exclusivement d'une séquence de trois lettres répétées dans t.

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Points : 25
    Points
    25
    Par défaut
    Non mais je sais ça. Je me demandais juste si c'était assez réaliste.
    J'ai l'impression que ce n'est pas 'stable' (au sens physique) du tout, à savoir que dès qu'il y a une petite perturbation, cela change complètement le résultat.
    Il suffit qu'une répétition de 3 lettres dans le texte codé ne vienne pas d'une répétition dans le texte initial pour qu'il y ait de très grandes chances que le résultat soit faux (le seul cas pour lequel ce ne serait pas faux, ce serait si on trouve une distance k qui est un multiple du vrai pgcd, et c'est assez peu probable).
    Mais bon, ceci, c'était juste une question existentielle, elle n'empêche pas du tout, tu as raison, de faire l'exercice, avec la supposition de l'énoncé.
    Que penses-tu de mes procédures ? Sont-elles correctes ?

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par elishac Voir le message
    Non mais je sais ça. Je me demandais juste si c'était assez réaliste.
    C'est un énoncé. Laisses tomber le côté réaliste

    Citation Envoyé par elishac Voir le message
    Que penses-tu de mes procédures ? Sont-elles correctes ?
    Trop de boucles ! Trop impérative.

  5. #5
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    C'est un énoncé. Laisses tomber le côté réaliste

    Envoyé par elishac
    Que penses-tu de mes procédures ? Sont-elles correctes ?
    Trop de boucles ! Trop impérative.
    Pour te mettre sur la voie, regarde du côté des fonctions
    -map ou map2
    -fold_left ou fold_right
    -éventuellement leurs cousines
    tu te simplifieras grandement la vie, parce que tu respecteras le paradigme fonctionnel à la base de Caml ...

  6. #6
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    L'énoncé laisse le choix du langage, si tu pars en Caml il fait est conseillé d'utiliser la récursivité à outrance.

    Pour le codage de Vigenere, ce lien explique un peu:

    http://fr.wikipedia.org/wiki/Test_de_Kasiski

    En gros, on regarde les facteurs premiers de la longueur entre deux répétitions, si un facteur premier est présent dans 90% des cas alors il divise la longueur de la clé...

  7. #7
    Inactif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Points : 25
    Points
    25
    Par défaut
    Moi j'ai appris que pour les tableaux ou les string, la programmation impérative était plus adapté, compte tenu de la manière dont il a été créé, alors que les listes étaient plus adaptées à une programmation récursive.

    James-mi, les fonctions que tu proposes, je ne les connais pas, et on n'est pas sensé utilisé des fonctions trop évoluées, ou alors il faut les reprogrammer, en fonctions auxiliaires.
    Par exemple, je suis sur qu'il existe une fonction en caml qui trouve le pgcd, mais une des questions demande de le refaire soi-même.

    Qu'est-ce que ça donnerait en récursif ?
    A part ce probleme la, il n'y a pas de faute ?

    coyotte, il s'agirait donc de trouver les facteurs premiers en commun, plutot que le pgcd ?

  8. #8
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Citation Envoyé par elishac Voir le message
    Moi j'ai appris que pour les tableaux ou les string, la programmation impérative était plus adapté, compte tenu de la manière dont il a été créé, alors que les listes étaient plus adaptées à une programmation récursive.
    C'est aussi ce que je te conseille, pour l'avoir dûrement vécu.

    Certes, il existe toujours des cas où c'est mieux autrement, mais pour commencer, fais comme ça : ça t'épargnera beaucoup d'ennuis, entre autres concernant les effets de bords.

    Citation Envoyé par elishac Voir le message
    James-mi, les fonctions que tu proposes, je ne les connais pas, et on n'est pas sensé utilisé des fonctions trop évoluées, ou alors il faut les reprogrammer, en fonctions auxiliaires.
    Par exemple, je suis sur qu'il existe une fonction en caml qui trouve le pgcd, mais une des questions demande de le refaire soi-même.
    Ces fonctions-là sont censées être connues, et elles ne sont ni évoluées ni difficiles à comprendre. Personne ne pourra t'en vouloir si tu les utilises, car elles sont considérées comme des briques de base du langage, un peu comme la fonction ref en quelques sortes...

    A la rigueur, par précaution, tu peux ajouter en début d'exercice que tu les supposes connues.

    Pour ce qui est du pgcd, là, il s'agit bien de fonctions évoluées que tu ne verras jamais implantées dans un vrai langage de programmation compilant vers de l'assembleur.
    When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.

  9. #9
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Citation Envoyé par elishac Voir le message
    Moi j'ai appris que pour les tableaux ou les string, la programmation impérative était plus adapté, compte tenu de la manière dont il a été créé, alors que les listes étaient plus adaptées à une programmation récursive.

    James-mi, les fonctions que tu proposes, je ne les connais pas, et on n'est pas sensé utilisé des fonctions trop évoluées, ou alors il faut les reprogrammer, en fonctions auxiliaires.
    Par exemple, je suis sur qu'il existe une fonction en caml qui trouve le pgcd, mais une des questions demande de le refaire soi-même.

    Qu'est-ce que ça donnerait en récursif ?
    A part ce probleme la, il n'y a pas de faute ?

    coyotte, il s'agirait donc de trouver les facteurs premiers en commun, plutot que le pgcd ?
    Salut,

    pour savoir si tes procédures sont correctes, il te suffit de les tester.

    Voilà un exemple de procédure récursive (non testée )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    let longueurDeLaCle t' n =
    	let rec len gcd = function
    		i when i <= n-3 -> len (pgcd gcd (pgcdDesDistancesEntreRepetitions t' n i)) (i + 1)
    		| _ -> gcd
    	in
    	len 0 0
    ;;
    A l'intérieur de la fonction longueurDeLaClé, on définit une procédure récursive len gcd igcd est le pgcd auquel on est parvenu et i l'indice dans le texte t' où l'on est.

    Si i est valide ( i <= n-3), on fait un autre appel à len, mais une case plus loin (i+1), avec comme nouveau pgcd le pgcd de gcd et de pgcdDesDistancesEntreRepetitions.

    Si i vaut autre chose que (i <= n-3), on retourne le pgcd auquel l'on est parvenu.

    ---------

    Pour ce qui est des facteurs premiers en commun, ils te permettront de tomber sur le pgcd de toute façon à la fin, mais ils permettent d'éliminer les faux-positifs (répétitions dans t' mais pas dans t) assez facilement. (Si un facteur premier n'est pas présent dans 90 % des cas, alors on suppose qu'il ne fait pas partie du pgcd).

    Il faut aussi faire attention aux ordres de multiplicité des facteurs premiers (par exemple si la longueur de la clé est 12, la décomposition est alors 2² et 3, pas 2 et 3)

    Voilà, si tu veux faire quelque chose qui marche en réalité, fait des tests et amuse-toi

  10. #10
    Inactif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Points : 25
    Points
    25
    Par défaut
    Bon, et sinon, sur un plan théorique, elles sont sans fautes mes fonctions ?

  11. #11
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Citation Envoyé par elishac Voir le message
    Bon, et sinon, sur un plan théorique, elles sont sans fautes mes fonctions ?
    A première vue, oui.

  12. #12
    Inactif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Points : 25
    Points
    25
    Par défaut
    Le problème, c'est que quand je fais un essai de ma fonction, en essayant de trouver la longueur de la clé d'un texte crypté avec le mot "chien" ou avec le mot "elephant", je reçois toujours 1.
    Comment pourrais-je la modifier pour que le résultat soit bon ?

  13. #13
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Donne un exemple de texte et de clé.
    Attention, le texte ne doit pas être aléatoire (un texte en français quoi) et suffisamment long par rapport à la clé.

  14. #14
    Inactif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Points : 25
    Points
    25
    Par défaut
    Voici le texte, avec seulement les 26 caractères de l'alphabet (sans accent, sans espace, sans majuscule ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    < edit: Finalement, je l'ai mis dans mon post suivant >

    Voici les procédures qui permettent de tester le texte (elles doivent être un peu modifiées par rapport à celles de l'énoncé, qui considère seulement des tableaux d'entiers. J'ai donc créé deux fonctions intvect_of_text et text_of_intvect pour passer d'une représentation à l'autre, et j'ai renommé les fonctions de l'énoncé en fonctions auxiliaires, entourées de fonctions qui passent d'une représentation à l'autre. Ainsi on entrera toujours des textes (en string) et on recevra toujours du texte. J'en ai profité pour enlever l'argument demandant la taille du tableau, qui est facile à retrouver). Je pense qu'elles sont correctes, mais dans le doute, regardez les quand même.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    let intvect_of_text s=
    	let n=string_length s in
    	let v=make_vect n 0 in
    		for i=0 to n-1 do
    			v.(i)<-(int_of_char s.[i]) -97
    		done;
    v;;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    let text_of_intvect v=
    	let n=vect_length v in
    	let s=make_string n `a` in
    		for i=0 to n-1 do
    			s.[i]<- char_of_int (v.(i) +97)
    		done;
    s;;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    let frequences s=
    let aux_frequences t' n=
    	let res=make_vect 26 0 in
    		for i=0 to n-1 do 
    			let a=t'.(i) in
    			res.(a)<-res.(a)+1
    		done;
    res
    in
    aux_frequences (intvect_of_text s) (string_length s);;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    let codageVigenere t c =
    let aux_codageVigenere t n c k=
    	for i=0 to n-1 do
    		t.(i)<-(let a=(t.(i)+c.(i mod k)) in if a>25 then a-26 else a)
    	done;
    text_of_intvect t
    in
    aux_codageVigenere (intvect_of_text t) (string_length t) (intvect_of_text c) (string_length c) ;;





    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    let rec pgcd a b = if b=0 then a else pgcd b (a mod b);;
    Remarques:
    1) j'utilise la methode par divisions successives qui est plus performante
    (en termes de complexité temporelle).
    2) Dans l'énoncé, il est supposé que les deux entiers sont strictement
    positifs, mais le cas ou l'un des arguments est nul est géré, et c'est
    important car dans la suite. En effet, vu la programmation que j'ai fait, il n'est
    pas interdit que l'un des arguments soit nul (je crois - à vérifier).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    let pgcdDesDistancesEntreRepetitions t' n i=
    	let res=ref 0 and i0=t'.(i) and i1=t'.(i+1) and i2=t'.(i+2) in
    		for j=i+3 to n-3 do
    			if ( t'.(j)=i0 && t'.(j+1)=i1 && t'.(j+2)=i2 ) then
    				res:=(pgcd (!res) (j-i))
    		done;
    !res;;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    let longueurDeLaCle s' =
    let aux_longueurDeLaCle t' n =
    	let res= ref 0 in
    	for i=0 to n-3 do
    		res:= pgcd (!res) (pgcdDesDistancesEntreRepetitions t' n i)
    	done;
    if !res=0 then failwith "error" else !res
    in
    aux_longueurDeLaCle (intvect_of_text s') (string_length s');;

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Le test de Kasiski est directement implanté dans les dernières versions de Maple dans le package StringTools. Il permet de trouver la longueur de la clé.
    Pour en revenir au code, il me semble correct. Il faut entrer un texte assez long pour obtenir un résultat probant. Ci dessous, je propose un texte tiré de Nora-Minc qui marche avec certains mots clés dont "nora" et pas avec d'autres dont "chien". Il permet de tester aussi la dernière question du problème qui est de faire le décodage automatique du texte transformé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    larevolutioninformatiqueauradesconsequencespluslargesellenestpaslaseuleinnovationtechniquedecesdernieresanneesmaiselleconstituelefacteurcommunquipermetetaccelerelesautres
    Le texte transformé avec nora devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    yoieiccugwfnvbwoeartveleniiaqsjcbbjedivnpsjpyijlnfxefsclrbvsgdrsyojehzviabfvnhzoahvcubzqhsuepsjdrfeirfvsnbeergdavgvlystoagkigivlrtrcgslrpcdmhbhuvdvrzskegotcrzvrrzvsnikrrg

  16. #16
    Inactif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Points : 25
    Points
    25
    Par défaut
    Voici le texte (28633 caractères) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    let s="fantinepremierepartielevequeetleforcatlivrepremieretsecondunhuituncinqalorsquetouslesaubergistesdelavillelontchasselebagnardjeanvaljeanesthebergeparmgrmyrielquelespauvresontbaptisedapreslundesesprenomsmgrbienvenulevequedelavillededignelaccueilleavecbienveillancelefaitmangerasatableetluioffreunbonlitjeanvaljeanaetecondamneenunseptneufcinqpourlevoldunpainetvientdepasservingtansaubagnepourtantmalgrelagenerositedesonhotejeanvaljeansenfuitenpleinenuitapresavoirderobelessixcouvertsdargentlesseulesrichessesdelevequelelendemainlesgendarmesleramenentchezmgrbienvenuquiasagrandesurpriselinnocentelevequeluioffrememedeuxchandeliersenargentquejeanvaljeanavaitoubliedemporterilsouhaiteainsiaiderlancienbagnardaredevenirunhonnetehommepourtantsurlaroutejeanvaljeancommetunnouveaudelitilvoleunpetitramoneurmaisalorsquilsappretearangersonlarcindanssabesaceilrevoitleschandeliersdemgrbienvenuetserappellelesparolesdelevequeilnauraplusalorsquunseulbuthonorerlabontedelecclesiastiqueetservirlebienladecheancedefantineparisaoutunhuitunseptquatreetudiantsdontuncertaintholomyesfontunbonrepasdansuncabaretavecquatrejeunesfillesinsouciantesdontlunefantineetonneparsabeauteetsacandeurellevitavectholomyessapremierehistoiredamourlesquatrejeuneshommesontpromisunesurpriseaudessertilssesquiventpournejamaisrevenirannoncantdanslalettredexplicationquilsontlaisseleurretourdefinitifdansleursfamillesenprovincelesjeunesfillessamusentdecettefarcesauffantinelaplusjoliequiestvraimentinquieteellesetaitofferteatholomyesetattendunenfantdeluicosettelivreeauxloupsprintempsunhuitunhuitfantinequitteparisetportedanssesbraslapetitefillequelleaeudetholomyesetpourlaquelleelleatoutsacrifiecosetteellesouhaiteretourneramontreuilsurmersavillenataleouelleesperetrouverdutravailencheminamontfermeilellefaitlaconnaissanceduncoupledaubergistesdallureplutotaccommodantelesthenardiertresvitecosettejoueaveclespetitesfillesdesaubergistesfantineyvoitlaunsigneducieletproposedeleurconfierquelquetempslagardedecosettelesaubergistesacceptentmoyennantunepensioncosettequinaquecinqansseretrouveainsipriseaupiegedunsinistrecouplequinetardepasaenfairesaservantetoutlepaysvadesormaissurnommercosettelalouettepetiteesclaveenhaillonsfragileettremblantesoumisealatyranniedecesabominablesaubergistesladecheancemontreuildeunhuitunhuitaunhuitdeuxtroisasonarriveeamontreuilfantinedecouvrequesavillenataleestdevenueprosperegraceauninconnuarrivedeuxansplustotetquiasurelanceretdevelopperlindustriedelaregioncethommemmadeleinenomdempruntdejeanvaljeansembleunveritablebienfaiteuriloffredutravailatouteslespersonneshonnetesquisepresententasafabriquedonnedesconseilseclairesetmultiplielesactesdegenerositeilestaussidoteduneforcepeucommuneunjourilasauveunvieillardfaucheleventquesacharrettemenacaitdecrasermmadeleineestparvenuareleverlacarrioleetadegagerlevieilhommequisanslinterventiondecetteforcedelanatureetaitpromisaunemortcertaineautermedesareussiteindustrielleetdesonascensionsocialemmadeleineacceptesouslapressiondesesconcitoyensdedevenirlemairedelavilleunhommelinspecteurjaverttenebreuxobsedeparlautoriterestepourtantinsensiblealadmirationunanimedontbeneficiemmadeleinepireayanttravailleauparavantdanslesbagnesdumidiilsinteresseparticulierementacenotableilalimpressionquecevisageneluiestpasinconnufantineatrouvedutravaildanslesateliersdemmadeleinemaissabeautesuscitelajalousiedesescolleguesquicommencentalepierellesdecouvrentquelajeunefemmeaunenfantnaturelcequiluivautdetrerenvoyeeparlasurveillanteelleeprouvealorsdumeprispourmadeleinequelleimagineresponsabledecerenvoipourparvenirapayerlapensiondecosettefantineestobligeedevendresescheveuxblondsetaussisesdentsultimeetapedesadecheancelaprostitutionunjourdhiverfantinemaladefaitlescentpassurletrottoirunjeunebourgeoispoursedistraireluiglisseunebouledeneigedansledosvexeefantinesejettesurlindividuetlefrappelinspecteurjavertintervientarretelaprostitueeetluiinfligesixmoisdeprisonmmadeleineemuparlesmalheursdelajeunefilleintervientpourlafairelibererlorsquilapprendquilestindirectementlacausedeladecheancedecettejeunefillefantineayantetechassedesesateliersasoninsuilferatoutsonpossiblepoursoignerlajeunefemmeetluipermettrederetrouversonenfantilrenddefrequentesvisitesafantinelafaitsigneretenvoiedelargentauxthenardierentretempsilapprenddelabouchedejavertquunhommequiditsappelerchampmathieumaisquiseraitenfaitlancienforcatjeanvaljeanvaetrejugeaarraspourunvoldepommesmmadeleineapresunenuitdedebatinterieurlacelebretempetesousuncraneserendautribunalilprendladefensedechampmathieuensedenoncantcetaveuluivaudradetrearreteparjavertdanslachambredefantinequimeurtavantdavoirrevucosettecosettedeuxiemepartielabatailledewaterloomaiunhuitsixunlenarrateurraconteunevisiteapiedsurlesvestigesdeladefaitenapoleoniennedewaterloovisitequevictorhugofitenunhuitsixunlorsdesonretourdeliledelbesurleslieuxmemedelabatailledejuinunhuituncinqcejourlanapoleonaffrontaitlestroupesanglaisesetlesforcescoaliseesdeleuropecontinentalevictorhugoreflechitsurlescausesdecedesastrenapoleonienilpleuvaitcejourlalesoletaitboueuxcequiempechalempereurdedeployerlibrementsonartilleriesonarmestrategiquepiremalrenseigneelacavaleriefrancaiseseprecipitadansunravinoubeaucoupdesoldatsperirentecraseslesrenfortsesperesnarriverentpascambronnefitpasseralaposteritecettedefaiteheroiquelagardeimperialequildirigeaitluttajusquauderniercarreetluilancaalennemisonmotcelebremlenarrateurrelatealorsunefunebrerencontrequiluipermetdintroduireundespersonnagesdesmiserablesdanscettebatailledewaterloopendantlanuitquisuitcettebatailleunsordideescrocdepouillelescadavresdetousleursobjetsprecieuxildegagelecorpsdunofficierpourluivolersamontreceluicinestqueblesseetestpersuadequelinconnuluiasauvelavielofficierreconnaissantlecolonelpontmercydemandesonnomasonsauveurprovidentielcestthenardierlesauvetagedetoulonunhuitdeuxtroisemprisonnesuiteasonarrestationparjavertjeanvaljeanetaitparvenuasevadermaisilaetereprisilaetecondamneauxtravauxforcesaperpetuiteetseretrouveaubagnedetoulonlorsdunaccidentsurunvaisseaudeguerrerentreauportdetoulonilsauvelaviedunmarincequiluivautlesoutiendelafoulequireclamesagraceilsejettealameretparvientasechapperennageantsouslebateaupersonneneretrouvantsoncorpsonlecroiramortjeanvaljeanrecueillecosetteayantretrouvelalibertejeanvaljeansouhaitehonorerlapromessequilavaitfaiteafantineliberercosetteilarriveamontfermeillaveilledenoelcosetteesttoujoursenhaillonsalorsquelapetiteservantesefaitreprimanderparlathenardierjeanvaljeanprendsadefensepuislaterriblemegereenvoiecosettealanuittombeechercherdeleaualafontainelabasdanslaforetcorveequecosetteredoutaitdautantquelanuiestglacialeetleseauplusgrandquellecosettepartseuledanscettenuitdenoelellejetteunregarddevantunesomptueusepoupeeexposeedanslunedesbaraquesdresseespournoelpuisellesenfoncedanslanuitnoireleseaurempliilluifautvaincrelafatiguelapeuretlefroidetsedepechercarsapatronneahorreurdattendresoudainellesentqueleseaudevientdeplusenpluslegerunegrossemainsestsaisiedelansecosettesesentprotegeeparcethommetresfortquelleneconnaitpasetquipourtantlarassureenechangeantquelquesmotsaveclajeuneservantejeanvaljeanreconnaitlafilledefantineetlaideaporterleseaujusqualaubergeilluifaitcadeaudelapoupeetantadmireeindemniselesaffreuxaubergistesetemmenecosetteavecluilecouventjeanvaljeanetcosetteserendentaparisoulancienforcatloueunemaisonvetusteetisoleelamasuregorbeauilsyinstalleaveclajeunefillequilprotegedunamourpaternelquantacosetteellearetrouvesagaieteetsoninsouciancemaisbientotjeanvaljeansesentsurveilleleregardsoupconneuxdunevieillevoisinenelaisserienpresagerdebonlavieilledamefaitrentrerunnouveaulocatairequinestautrequejavertlesoirmemejeanvaljeandecidedepartirilsenfuitaveccosettedanslanuitjavertlanceuneescortedepoliciersetdesoldatsaleurtrousseilfauttoutelaclairvoyanceetlagilitedelancienforcatpourechapperalameutedespoursuivantsilescaladeunmurparvientahissercosetteetseretrouventtousdeuxdansunlieuetrangeilsyentendentdeschantscelestesetapercoiventausoldesformesbizarresheureusementapparaitunvieilhommeprovidentielfaucheleventautrefoisalorsquiletaitmairedemontreuilsurmermmadeleinealiasjeanvaljeanavaitsauvelavieacethommeetluiavaittrouveunpostedejardinierdanslecouventdupetitpicpusjardindanslequelilsonttrouverefugecesoirparleplusgrandhasardpleindereconnaissancelevieilhommelesaccueilleilleurapprendquececouventestegalementuneinstitutionpourjeunesfillesilleurindiqueaussiquexcepteslepreteetlejardinieraucunhommenestadmisdanscetetablissementilleuroffretoutefoisunabrifaucheleventprofiteradelamortdunereligieuseetdelaconfiancedontilbeneficiedanscecouventpourdemanderlapermissiondefairevenirsonfrereetlafilledeceluicipourlaiderdanssontravailgraceacesubterfugejeanvaljeanvadoncpouvoiretreemployecommeaidejardinierunenouvellefoislancienforcatvachangerdidentiteetsappelleradesormaislefrerefaucheleventquantacosetteelledevientelevedanscecouventlesreligieusesesperantbienlaconvaincredentrerplustarddanslesordresmariustroisiemepartieretouralamasuregorbeauunpeuplusdehuitanneessesontecouleeslamasuregorbeaujadishabiteeparjeanvaljeanabritemaintenantdenouveauxlocatairespnytrouveunefamillemiserableleperequiditsappelerjondrettesonepouseetleursdeuxfillesquantaufilsgavrocheunvraigamindeparisilachoisidevivredanslaruecettefamilleaccueilleunnouveauvoisinunjeunehommepetitfilsdungrandbourgeoisnommemariuspontmercymariussonpereetsongrandperemariusapassetoutesonenfancechezsongrandpereunroyalisteintransigeantquinesupportenilarevolutionnilempireeneffetalamortdesafillelevieilhommearecuperelejeunemariusnesupportantpasdelelaisserauxsoinsdesonpereuncoloneldelempireapresunebrillantecarrieredanslarmeenapoleonienneleperedemariusaetelorsdelarestaurationassignearesidencedansleurelegrandperesefforcedemaintenirmariusalecartdesonpereappeleauchevetdesonperemariusarrivetroptardilnepourralerevoirvivantilrecueillejusteunbilletecritdesamainquiluidemandedefairetoutcequilpourrapourretrouveretaiderlesergentquiluiasauvelavieawaterloothenardierassezpeutoucheparlamortdeceperequilnapasconnumariusdecouvrepeuapresquelecoloneldepontmercyfutunherosetunpereaimantettendreilapprendegalementquesonperevenaitdetempsentempsdiscretementalegliseenrestantcachederriereunpilierpourtenterdapercevoirsonfilsdeslorsmariussouhaiterasepenchersurlepassedesonpereilsepassionnepourlarevolutionetlempireetrecherchetoutetracedelheroismedeceperequilnapasconnulegrandperedemariusnepeutsupporterlerevirementpolitiquedesonpetitfilsapresuneviolentealtercationlevieilhommechassesonpetitfilslesamisdelabcmariusrefusetouteaidefinancierealarechercheduntoitiltrouverefugedansunhoteloulemmenecourfeyraclundesesamisetudiantscedernierlepresenteaungroupedetudiantsquiavecquelquesouvriersontfondeunesocietesecretelesamisdelabcjeudemotssurlabaissequisignifielepeupleilstiennentleursreunionsdanslarrieresalleduncafeduquartierlatinmariuspoursuitsesetudesdavocatmaisvitdequelquestraductionsquiluipermettenttantbienquemaldepayerlesnotesdelhotelcestpourquoiilfinitpareliredomiciledanslamasuregorbeausuiteaunebrillanteplaidoiriequicouronnesesetudesilestrecuavocatpourpreserversonindependancemariusrefusedeplaideretvasecontenterdaleatoirestravauxdelibrairieunregardaujardinduluxembourgmariusquiaunevingtainedanneesestunbeaujeunehommealafoisreveuretreservedufaitdesapauvreteunjourlorsdesapromenadeaujardinduluxembourgilremarqueunejeunefillequisepromeneavecunvieilhommeauxcheveuxblancsleregardquellevaluioffrirvalenflammerilentombeaussitotfollementamoureuxdeslorsilreviendratouslesjoursauluxembourgavecsonplusbelhabitetmultiplieralesmanoeuvrespourattirerlattentiondelajeunefillesansprovoquerdesoupconchezceluiquilprendpoursonpereunjournytenantplusilvasuivrelevieilhommeetsafillejusqualeurdomicilecettefilatureeveillelattentionduvieuxmonsieurquiseretourneversmariuspourletoiserquelquesjourssesontecouleslajeunefilleetlevieilhommeneviennentplusaujardinduluxembourgnytenantplusmariusserendaupieddeleurimmeubleetquestionneleportierilluiapprendquilsontsoudainementdemenagemariusestdesespereplusieursmoisontpassedepuisquemariusaperdulatracedelajoliejeunefillequifaitbattresoncoeurilestmelancoliqueetaccablejusquaudeuxfevrierunhuittroisuncejourlaayantetesolliciteparunedesfillesdesesvoisinsquimendiaitmariusprisdepitieluiadonnemalgresesmaigresressourcescinqfrancspuisrentrantdanssachambreilsemetaobserverparlunedesouverturesdumurlelogementdesesvoisinsilapercoitquatrecreatureshideusesleperelamereetlesdeuxfillesvivantdansuneimmensepauvreteetuneaffreusesaletecestalorsquunedesfillesannoncelarriveedungenereuxmonsieurquelleavaitluiaussisollicitedanslajourneesurprisedemariusquivoitentrerdansletaudisdesesvoisinslevieilhommeetlajeunefillequilaimeapitoyeparcettefamilledemiserableslemonsieurprometderevenirlesoirmemeaveclargentquileurpermettradepayerleurloyerdesledepartdecellequilaimeetdesonperemariusnaquuneideelessuivrehelassansargentilluifautvitedechanterilnepeutmemepassepayerlefiacredontilauraitbesoinpourlesfilerderetouralamasuregorbeaumariusassisteadinquietantspreparatifsdansletaudisdesesvoisinsleperejondrettepretendavoirreconnulevieilhommeetprepareavecsafemmeunguetapensdestinealeurbienfaiteurpersuadequeleperedecellequilaimeestendangermariusdecidedetoutraconteralapoliceilexpliquelasituationaunpolicierquilecouteavecungrandinteretcepoliciercestjavertlesoirmariusareprissonpostedobservationlebienfaiteurestapeinerentrequunebandedemalfaiteursauvisagecharbonneuxlentourentetleligotentilsouhaitentluifaireavouersonadresseenvuedenleversafilleetdobteniruneenormeranconlevieillardresistepourmontrersadeterminationilvamemejusquasappliquerluimemesurlebrasleferrougequesesgeoliersavaientpreparepourlefaireparleranimedunesoifdevengeancejondrettenepeutresisterauplaisirsadiquederevelerasonprisonniersaveritableidentiteilsappellethenardieraeteaubergisteamontfermeiletvouedelahaineauncertainjeanvaljeanquilavaithumiliemariusestenproieauncrueldilemmeilsetrouveenfinenfacedethenardierceluiquiasauvelavieasonperelecolonelpontmercyawaterloocolonelquidanssesdernieresvolontesavaitexprimeledesirquesonfilsluitemoignesareconnaissancevatillaissertuerleperedecellequilaimedoitildonnerlalerteauxpolicierscommeleluiavaitdemandejavertlabrusqueirruptiondejavertetdeseshommesmetfinasacruellehesitationthenardierettouslesbanditssontarreteslemysterieuxvieillardluiestparvenuasechappercequicontrarieenormementjavertvisiblementcestsurtoutlevieilhommequilauraitaimeapprehenderlelendemaingavrochevientrendrevisiteasafamilleildecouvreletaudisvideetonluiapprendquilssonttousenprisonlidyllerueplumetetlepopeeruesaintdenisquatriemepartiesurlestracesdecosetteunhuittroisununhuittroisdeuxlafranceconnaitunenouvelleperiodedefebrilitepolitiquelouisphilippeestcertesparvenuaaffirmersonpouvoirmaisildoitaffronterdesopposantsdeplusendeterminesquicontestentleprincipememedupouvoirmonarchiquedestheoriessocialistessefontjourtandisquedessocietessecreteseffectuentuninebranlabletravailsouterrainilregnedansparisetnotammentdanslesquartierspopulairesunefurtiveeffervescencelessignesdecontestationsemultiplientperceptiblesautraversdeplusieursaccrochagesentrelesouvriersetlesforcesdelordreunefievrerevolutionnairesemblegagnercertainsquartiersdeparisnotammentaufaubourgsaintantoineououvriersetagitateursseconcertentenjolrasetsesamisparticipentactivementacebouillonnementmariusaquittelamasuregorbeaupournepasavoiratemoignercontrethenardiersuitealaffairedelembuscadecontrejeanvaljeanilestallevivrechezsonamicourfeyracilsemblepeuconcerneparcetteeffervescencepolitiquequiregneaparisunenouvellefoislejeuneavocataperdulatracedecosetteilpassebeaucoupdetempsasongeralajeunefilleetsespromenadessongeusesleramenentregulierementdanslesfaubourgsdelavilleaulieuditlechampdelalouettelieuditdontlenomressembleaceluiquevoquaitthenardierlorsquilpreparaitleguetapenscontrejeanvaljeaneponinelajeunefilledethenardierquiaechappealaprisonenraisondesonjeuneageparvientaretrouvermariusquelleaimesansgrandespoirelleapuseprocurerladressedecosetteetproposeamariusdeleconduireaupresdesajolierivalelarueplumetapresplusieursanneespasseesaucouventjeanvaljeanapreferefaireconnaitreacosettelavraievieplutotquedeluifairecourirlerisquededevenirreligieuseilaprofitedelamortduvieuxfaucheleventpourquitterlecouventdupetitpicpusilsestinstalleavecellerueplumetdansunemaisondiscretequialavantagedavoirunesortiesecretejeanvaljeannagardepourluiquunesimpleremisetandisquilalaisseacosettelaconfortablemaisoncosettedenfantdisgracieusequelleetaitausortirducouventestdevenueunejeunefemmerayonnanteelleestamoureuseensecretdecejeunehommequelleavaitrencontreaujardinduluxembourgjeanvaljeanayantnotecetteidyllenaissanteeteprouvantunesecretejalousiepourceluiquipourraitluiderobersafilleavaitalorsdecidedemettrefinauxpromenadesdujardinduluxembourgunmatindelautomneunhuittroisunaucoursdunepromenadematinalecosetteassisteparhasardaunconvoideforcatspartantpourlesgaleresalavuedecesgaleriensenchaineselleaunereactionhorrifieejeanvaljeanquiassistealasceneressenttoutacouplafragilitedesonbonheurilsuffiraitquecosetteapprennelaveritesursonpassepourquesoudainpeutetretoutsecrouleautreincidentquicontrariejeanvaljeanetquiluirappellesonpasselagressiondontilestvictimelorsdunedesespromenadesunjeunevoyouauregardarroganttentedeluiderobersaboursemalgresonagejeanvaljeanparvientasedefendreetacontenirlejeunebrigandillesermonneetluimontrelesmalheursauxquelsilsexposelebagnelestravauxforcesuneviedetruitesuiteacettemiseengardeildonnesabourseaujeunevoyouladiscussionaeuuntemoingavrocheilsapprocheduvoyouquelesproposdejeanvaljeanontdestabiliseetluiderobelaboursedelancienforcatgavrocheladestineaunvieuxchercheurdesargenteleperemabeufdontgavrocheasurprisuneconversationquelevieillardavaitavecsaservantenayantplusaucunargentlevieilhommeestmenacedexpulsionlaboursequegavrocheajetepardessuslahaietombeauxpiedsduvieilhommecosetteellesavourantlarriveeduprintempsretrouvesabonnehumeurnaturelleelleenarriveraitpresqueaoubliermariusplusieurssoirsalorsquelleestseulejeanvaljeanetantenvoyageelleapercoitdanslejardindeleurmaisonunmysterieuxrodeurunautrejourelleapercoitsurundesbancsdujardinunepierresouscettepierreelledecouvreuneenveloppecontenantplusieurspagesmanuscritesilsagitdujournalintimedanslequelunjeunehommeevoquetouslessentimentsetlesemotionsquilaeprouvesdepuisquillacroiseeilyaquelquesanneesdanslejardinduluxembourgenlisantcesquelquespageslesyeuxdecosettesenflammentanouveaupourcetinconnuquelleavaitelleaussiaimecesoirladanslejardinelleahatedecroisercemysterieuxvisiteurquelquesminutesplustardmariussapprochedelleetluideclaresapassiondissimulesparunevegetationluxurianteilsechangentleurpremierbaiserlesdeuxjeunesamoureuxseconfientlonguementlunalautreetsedevoilentenfinleurprenommariusetcosettedurantceprintempsunhuittroisdeuxilsserevoientsouventdanslejardindelamaisondelarueplumetlacandeurdecosetteetlavertudemariusmagnifientcegrandamourpendantcetempsthenardiergracealaidedegavrocheestparvenuasevaderdelaprisonilprepareavecsescomplicesunnouveaularcinilsonteneffetapprisenprisonquilyavaitunecibleidealerueplumetunvieilhommerichevivantseulavecsafilledanslasoireedutroisjuinunhuittroisdeuxilsrodentautourdelamaisondejeanvaljeancosetteetmariustoutaleuramournesapercoiventderienilfaudralinterventioncourageusedeponinelaproprefilledethenardierquinepeutsabstenirdepiercontinuellementceluidontelleestamoureusepourempecherlesmalfaiteursdaccomplirleurdelitelleosefaireobstacleasonpereetsescomplicesetmenacedalerterlequartiersilssobstinentfinalementilsabdiquentetdisparaissentlebonheurdemariusetdecosetteseraephemerecosetteannonceasonamantquejeanvaljeanluiademandedesepreparerpourunlongvoyageenangleterrenepouvantseresoudreacetteseparationmariusnevoitdautressolutionsquedallersollicitersongrandperemgillenormandpourluidemanderlautorisationdepousercosettelentrevueentrelevieilhommeetsonpetitfilsalieudeslelendemainmalgrelamourquilporteamariusmgillenormandneparvientpasaassouplirsonattituderigideetausteremariusluitropfocalisesursonamourpourcosetteenoubliedemontrerasongrandperelerepentirquecedernierattendentrecesdeuxetrespourtantsiprochesmaisquineparviennentpasaromprelaglacecestlincomprehensiontotalelegrandperedansunreflexedevieuxlibertinconseillememeamariusdefairedecosettesamaitressecenesttroppourlejeuneromantiquequinadmetpasquesongrandperepuissedeshonorersonamourilclaquelaporteabandonnantlevieilhommeasadouleurpendantcetempsjeanvaljeanacquiertlacertitudequilluifautfuiranouveauunemainmysterieusejetteasespiedsunbrefmessagedemenagezlelendemainmatinlorsquemariusarriverueplumetildecouvrelamaisonvidedesespereilestdecideamourirunevoixlinterpelleetluiindiquequesesamislattendentsurunebarricadeilsedirigespontanementverslequartierdouproviennentdesbruitsdecombateneffetcejourlaparisconnaitlunedesplusgravesemeutespopulairesdudixneuviemesiecleunefouleimmenseetencolereassisteauxfuneraillesdugenerallamarqueundesdernierssurvivantsdelarmeenapoleoniennetresvitelepeupleseretrouvefaceauxforcesdelordrecestlinsurrectionclameursetcoupsdefeuxlespremieresbarricadessedressentdanslespetitesruesducentredeparisgavrochelevisagerayonnantaderobeunvieuxpistoletdansunebrocanteilmarchedunpasdecideautraversdesruesenfievreesilrejointungroupederevolutionnairesalateteduquelsetrouveenjolrasunjeunechefindomptablecestaucoeurdeshallesdansuneruelleaupiedduncabaretlecorinthequecegroupedecidededresserunebarricadeilsrenversentunomnibuspuiscestladistributiondesarmesetdesmunitionssoudaingavrochereconnaitdanslegroupeunhommedegrandetailleilsagitduntraitredunmouchardquisestglisseaumilieudugroupedinsurgesjavertcederniernecherchepasaniersonidentitelegroupelefaitprisonnieretlattacheaupoteauduncabaretavertispargavrochedelapprochedunetroupemilitairelesrevolutionnairessemettentaleurpostedecombatlespremierscoupsdefeudesgardesnationauxeclatentledrapeaurougequiflottaitausommetdelabarricadetombeunvieilhommedehuitzeroansleperemabeufcevieuxsavantquegavrocheavaitsecourusemparedudrapeauilsehisseaudessusdelabarricadeetagiteledrapeaurougeilmourrasouslecrepitementdesballesencriantvivelarevolutionvivelarepubliqueenjolrasprofitedecetacteheroiquepourharanguersongroupemaislesforcesarmeesattaquentlabarricadetuantdautresinsurgeslundesgardesnationauxsappreteafrappergavrochelorsquuneballelatteintenpleinfrontcestmariusquivientdarriversurleslieuxducombatpntiresurluimaisunjeunehommesinterposeetleprotegedesoncorpsapresavoirsauvelaviedegavrochelejeunehommesemparedunbarildepoudreetmenacedefairesauterlabarricadeeffrayesparunetelledeterminationlesgardesnationauxreplientcheminlajoiedesinsurgesserabreveundeleursamismanquealappelilsagitdupoetejeanprouvairelesforcesdelordrelontcaptureetonlentendpousserunderniercrilorsquelesballesdunpelotondexecutionresonnentdanslespetitesruelleslesortdejavertestscelleenrepresailleslegroupedecidedelexecutermariusinspectelesenvironscestalorsquelejeunehommequitoutalheuresestinterposepourluisauverlavielappelleilsagitenfaitdeponinelafilledethenardierquipoursapprocherincognitodemariussestdeguiseeenouvriermortellementblesseeelleavoueaujeunehommelapassionquelleeprouvepourluiluidevoilequiestgavrocheetluidonneunbilletqueluiaconfieecosetteasonintentionsurceboutdepapiercosetteajusteeuletempsdegriffonnerladresseouilsesontrefugiesavantleurdepartpourlondresruedelhommearmegraceacemotmariuscomprendquecosettenelapasabandonnepourtanttoujoursconvaincudelimpossibilitedeleuramourilrestedecideamouririlredigeasontourunbilletasonintentionbilletquilconfieagavrocheetquiannoncesamortimminenteruedelhommearmejeanvaljeanestextremementdeconcerteilvientdedecouvrirparhasardsurunbuvardletextequecosettevientdadresserasonamantilestentraindevivrecemomenttantredouteceluideperdrecosetteleseuletrequilaitvraimentaimeilsesentrevolteeteprouvealorsuneimmensehainepourceluiquiluivolecosetteildescendalorsdanslarueetsassiedsurunebornearrivealorsgavrochequiavecsonairenjoueledelivredesasombremeditationilprendconnaissancedubilletqueluiapportegavrocheeressentunsoulagementhorriblelorsquilapprendlamortprochainedemariussamissionaccompliegavrocherepartenchantantverslesbarricadesjeanvaljeanmarchesursestracesjeanvaljeancinquiemepartielanuitsachevelejourselevecesixjuinavecungoutamerpourlesinsurgescontrairementaleursespoirslepeupledeparisnelesapassuivisilsaventqueleurcombatestperdulabarricadeheroiquesouhaitepourtantsebattrejusquauboutpersonneneveutabandonnerlaluttemariusetenjolrasparviennentdifficilementaconvaincrecinqhommesayantdesenfantsachargedequitterlecombatpnleurdonneleshabitsdegardesnationauxquiontetetuespourquilpuissentfuirilnyaenfaitquequatregardesnationauxtueslecinquiemenedevrasonsalutquajeanvaljeanquivientdarriversurlabarricadeetquijettesonhabitaucinquiemeperedefamillelesinsurgesdefendantlabarricadedoiventmaintenantaffronterlescanonslesmunitionssefontdeplusenplusraresprofitantduncourtmomentderepitgavrocheserisquehorsdelabarricadepourrecupererlesmunitionsdessoldatsquionteteabattuslorsdesderniersechangesdecoupsdefeulegamindeparisprendmemeunmalinplaisirachanterpourprovoquerlesgardesnationauxceuxcileprennentpourcibletandisquilcourtentoussenspourlesagacerpuisiltombefaucheparuneballeaumilieudesachansonlissuefataleducombatsembleprochejeanvaljeanobtientdugroupelautorisationdexecuterleurotagejavertilemmenelemouchardalecartdelabarricadeetaugrandetonnementdupoliciertireplusieursfoisenlairilluirendsaliberteapresluiavoirindiquesonadresseaumememomentlabarricadeestprisedassautlesamisdenjolrastombentlesunsapreslesautreslesderniersinsurgesseretranchentdansunesalleducabaretlesgardeslespourchassenttousvontetreexecutesmariusluiblessesesentsaisiparunemainenergiquecestjeanvaljeanquiparvientalarracheraunemortcertaineilsouleveunebouchedegoutetparvientaemporterleblesseevanouisursonepaulelapolicedescendasontourdanslesegoutsetpoursuitlesfuyardsjeanvaljeanmanquedesenoyercettefuitedanslobscuriteestsemeedembuchesetdepiegesculsdesacamoncellementsdebouepatrouillesdepolicierssoninstinctluipermetdeleseviterapresunelongueetepuisantemarchedanslessoussolsdeparisilatteintenfinunegrilledesortiemaiscelleciestfermeeaclefcestalorsquesurgitthenardierluiaussirefugiedanslesegoutspourechapperadespoliciersquiletraquentthenardiernelereconnaitpasmaisestpersuadequelhommeenfacedeluiestuncriminelportantsursondossavictimemoyennantunefortesommethenardierluiproposedouvrirlagrilleenfaitilespereenlaissantpasserdevantluiunautrehommefournirunevictimefacileauxpoliciersquilattendentderrierelagrilleapeineestilsortiquejeanvaljeanestarreteparjavertquiattendaitjustementthenardierderrierelagrillejeanvaljeanacceptedeseconstituerprisonnieraconditionquejavertlaidearamenermariustoujoursevanouichezsongrandperejeanvaljeandemandeensuiteajavertuneultimefaveurserendrechezluijavertaccepteillaccompagneruedelhommearmemaisaulieudattendresavictimeildisparaitdepuisquejeanvaljeanluiasauvelavieennelefusillantpassurlabarricadejavertestbouleverseildecouvrequelesforcatspeuventetregenereuxsesschemasmanicheensseffondrentilnesupportepascetteremiseenquestionetvasejeterdanslaseinependanttroismoismariussebatcontrelamortmgillenormandsongrandpereleveilleaffectueusementtropheureuxlorsquesonpetitfilsestenfinretablimgillenormandacceptememesonmariageaveccosettecosetteellerecoitdejeanvaljeanunedotdepresdesixzerozerozerozerozerofrancslatotalitedutresorquemmadeleinealorsmairedemontreuilsurmeravaitcachedansuneclairierepresdemontfermeillerepasdenocesalieudansleseclatantssalonsdemgillenormandtandisquencettefindesoireecosetteetmariusenfinseulsgoutentacegrandbonheursurlequelveillentlesangesjeanvaljeanseretrouveseuldanssachambreilpasselanuitapleurerfacealavaliseouilavaitsoigneusementgardelesvetementsdepetitefilledecosetteanouveauilconnaitundouloureuxdilemmedoitilavoueramariussaveritableidentitedoitilgardercetroplourdsecretlelendemainilaprissadecisionilavoueamariusquilestunancienforcatetquecosettenestpassafillemariusestbouleverseparcetaveuilpermetajeanvaljeandecontinueravoircosettemaistresviteilvaeprouverdelarepulsionpourcetancienforcatetdemanderaauvieillarddespacersesvisitespuisderompretoutcontactaveccosettecosetteeblouieparsonbonheurcommenceaoublierceluiquilaeleveeprivedesafilleadoreejeanvaljeansombredanslesilenceetlasolitudeiltombegravementmaladeetvamourirseuldanssapetitechambrecequianeantitcestlaperspectivedemourirsansrevoircosettecestalorsquelonfrappealaportecestmariusetcosettequidunmemecriappellentjeanvaljeanperemariusaenfinpudecouvrirtouteslesqualitesdelancienforcatcestluiquilasauvesurlesbarricadesetquilaramenechezsongrandpereluiencorequialaisselaviesauveajavertettouscesgestesonteteaccomplisaveclaplusgrandedesdiscretionslesdeuxjeunesepouxsejettentauxpiedsduvieilhommeetlesupplientdevenirvivreaveceuxcemomentremplitdebonheurjeanvaljeanilpuisedanssesdernieresforcespourbenirlecoupleetevoqueaveccosettelesjoursheureuxdeleurvieensembleetlesouvenirdesamerefantineilexpireaupresdesesenfantsenlarmesselonsesdernieresvolontesilestenterreanonymementcommeunpauvredansuncoinperduducimetiereduperelachaisequelquesversgriffonnesrappellerontsonetrangedestinildortquoiquelesortfutpourluibienetrangeilvivaitilmourutquandilneutplussonangelachosesimplementdellememearrivacommelanuitsefaitlorsquelejoursenva"

  17. #17
    Inactif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Points : 25
    Points
    25
    Par défaut
    Saint-Louis, j'ai l'impression que l'algorithme ne marche pas quand il y a trop de caractères (car alors la probabilité qu'il y ait 3 lettres consécutives codées ne provenant pas de 3 lettres consécutives non codées devient grande, et par conséquent on trouvera à tous les coups un pgcd de 1, si le texte est suffisamment long).
    De plus, il ne marche pas non plus quand il n'y en a pas assez (car 'e' pourrait ne pas être la lettre la plus fréquente).
    En conclusion, il ne marche presque jamais :-).

  18. #18
    Inactif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Points : 25
    Points
    25
    Par défaut
    Ma question reste donc la même : comment modifier la fonction pour que le résultat soit correct ?

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 12
    Points
    12
    Par défaut Exercice décevant
    Effectivement, les hypothèses du sujet sont trop réductrices et un long texte
    aboutit à un pgcd égal à 1 donc inutilisable.
    Bref il ne faut voir dans ce sujet qu'un simple exercice de programmation itérative mais inutilisable dans la pratique.

  20. #20
    Inactif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Points : 25
    Points
    25
    Par défaut
    ok, c'est bien ce que je pensais, merci pour votre aide et votre confirmation.

    Bon, comment rendre le calcul de la taille de la clé correct ?
    (avec l'histoire des 90%, peut-être ? Mais peut-on adapter les procédures déjà faites, en leur rajoutant des contraintes, ou est-ce que ça n'a vraiment rien à voir ?)

Discussions similaires

  1. Exercice sur codage en C
    Par naspy dans le forum C
    Réponses: 20
    Dernier message: 03/05/2013, 07h06
  2. [XMLRAD] Décoder Request.Query
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 8
    Dernier message: 10/01/2003, 16h40
  3. [Accents - XML] Problème de codage non supporté !!
    Par Smortex dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/11/2002, 11h00
  4. codage objet
    Par charly dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 22/08/2002, 16h49
  5. Pouvez vous m'aider a resoudres ces 3 exercices
    Par algorithmique dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 09/08/2002, 17h26

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