# ATTENTION: mu = proba des caractere init, pas la proba stationnaire # => trouver les caractères fréquents = sort (count) !! # distribution stationnaire des caracteres freqKeys = np.array(list(count.keys())) freqVal = np.array(list(count.values())) # indice des caracteres: +freq => - freq dans la references rankFreq = (-freqVal).argsort() # analyse mess. secret: indice les + freq => - freq cles = np.array(list(set(secret2))) # tous les caracteres de secret2 rankSecret = np.argsort(-np.array([secret2.count(c) for c in cles])) # ATTENTION: 37 cles dans secret, 77 en général... On ne code que les caractères les plus frequents de mu, tant pis pour les autres # alignement des + freq dans mu VS + freq dans secret tau_init = dict([(cles[rankSecret[i]], freqKeys[rankFreq[i]]) for i in range(len(rankSecret))]) MetropolisHastings(secret2, mu, A, tau_init, 50000, chars2index)