コード例 #1
0
def fitness(position):
    key = "".join(alphabet[i] for i in position)
    substitution = Substitution(alphabet, key)
    original_text = substitution.decrypt(cyphertext)
    frequency = Frequency(n_gram, alphabet)
    frequency.get_frequency(original_text)
    res = 0
    for i in range(len(n_gram)):
        for j in range(len(frequency.ftab[i])):
            res += alpha[i] * abs(frequency.ftab[i][j] - target.ftab[i][j])
    return res