Homophonique Remplacement Cipher Python

voix
1

Je suis en train de faire un chiffre de substitution homophonique, où les lettres les plus courantes sont remplacés par plusieurs autres symboles, par exemple, si mon texte brut était « EEEEEEE » Le E serait remplacé par plusieurs symboles différents, qui dans ce code serait % et -

Ce que j'ai maintenant est la suivante

def encryption():
    plaintext = EEEEEEE
    plaintext = plaintext.replace(E, % -)
    print(plaintext)
encryption()

Je comptais le cryptogramme à ressembler à quelque chose comme ça « % -% -% - », où la lettre E serait remplacée au hasard par les 2 symboles que j'ai choisi, mais ce qui finit par se produire est que je reçois « % -% -% -% -% -% -% - », qui remplace chaque individu E avec tous les symboles, ce qui donne donc 14 caractères au lieu des 7 d'origine.

J'ai aussi essayé d'utiliser le module aléatoire mais je fini par obtenir soit « %%%%%%% » ou « ------- » la moitié du temps, mais jamais avec les deux symboles au hasard dans le même essai.

Alors, comment pourrais-je faire mon code capable de remplacer chaque individu E au hasard avec un « % » et « - »?

Créé 20/10/2018 à 03:33
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
2

Je pense que vous devez itérer sur la chaîne pour obtenir ce genre de hasard.

import random
def encryption(plaintext):
  ret = ""
  for i in range(len(plaintext)):
    ret += ("%" if random.random() > 0.5 and (plaintext[i] in ["a", "e", "i", "o", "u"]) else "-")
  return ret
Créé 20/10/2018 à 03:37
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more