Codage de HILL

 

  EXERCICE 1:

       Donner un algo pour coder des mots de deux lettres.

REPONSE:

from random import*
def etude():
      ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
      A=[[5,2],[7,7]]
      mot=raw_input("Donner un mot de deux lettres en majuscules ")
      X=[ALPHA.find(mot[0]),ALPHA.find(mot[1])]
                #On peut mettre index au lieu de find
     Y=[5*X[0]+2*X[1],7*X[0]+7*X[1]]
     R=[Y[0]%26,Y[1]%26]
     print " Votre mot code est :"
     print ALPHA[R[0]],ALPHA[R[1]]    

        EXERCICE 2

           Donner un algo pour coder des mots de quatre lettres.

                     REPONSE:
def etude1():
      ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
      A=[[5,2],[7,7]]
      mot=raw_input("Donner un mot de quatre lettres en majuscules ")
      X=[ALPHA.find(mot[0]),ALPHA.find(mot[1])]
      Z=[ALPHA.find(mot[2]),ALPHA.find(mot[3])]
      Y=[5*X[0]+2*X[1],7*X[0]+7*X[1]]
      T=[5*Z[0]+2*Z[1],7*Z[0]+7*Z[1]]
      R=[Y[0]%26,Y[1]%26]
      Q=[T[0]%26,T[1]%26]
      print " Votre mot code est :"
      print ALPHA[R[0]],ALPHA[R[1]], ALPHA[Q[0]],ALPHA[Q[1]]

       AUTRE POSSIBILITE
def etude2():
    ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    A=[[5,2],[7,7]]
    # A est la matrice de codage
    mot=raw_input("Donner un mot de quatre lettres en majuscules ")
    X=[ALPHA.find(mot[0]),ALPHA.find(mot[1]),ALPHA.find(mot[2]),ALPHA.find(mot[3])]
    #On peut mettre index au lieu de find
    #Dans X on a les indices des quatre lettres dans AL
PHA
    Y=[5*X[0]+2*X[1],7*X[0]+7*X[1],5*X[2]+2*X[3],7*X[2]+7*X[3]]
    R=[Y[0]%26,Y[1]%26,Y[2]%26,Y[3]%26]
    print " Votre mot code est :"
    print ALPHA[R[0]],ALPHA[R[1]], ALPHA[R[2]],ALPHA[R[3]]

     Par exemple:

>>> etude1()
Donner un mot de quatre lettres en majuscules MORT
 Votrez mot code est :
K A T S

>>> 

>>> etude2()
Donner un mot de quatre lettres en majuscules
CUBE
 Votrez mot code est :
Y Y N J

>>>