Xifratge de Vigenère

Hi ha moltes maneres d’intentar amagar un text. Una d’elles és el xifratge de Vigenère: Sigui ss una paraula amb lletres minúscules (les 26 de l’alfabet anglès), i sigui tt el text que volem xifrar, també compost per lletres minúscules. Sigui cc la concatenació d’infinites còpies de la paraula ss. Definim el valor d’una lletra \ell, v()v(\ell), com la distància d’\ell fins a ‘a’. És a dir, v(v(a)=0) = 0, v(v(b)=1) = 1, …, v(v(z)=25) = 25. Cada t[i]t[i] s’ha de convertir en la lletra que es troba v(c[i])v(c[i]) posicions a la dreta en l’alfabet, si cal “donant la volta”.

Per exemple, podem tenir s=s =hola” i t=t =patata”. Llavors c=c =holaholahola…”. Com que c[0]=c[0] =h’ i v(v(h)=7) = 7, t[0]=t[0] =p’ s’ha de convertir en ‘w’ (la lletra que està 7 posicions a la dreta de ‘p’). Similarment, c[1]=c[1] =o’ i v(v(o)=14) = 14, així que t[1]=t[1] =a’ es converteix en ‘o’. Per a la tercera lletra, tenim c[2]=c[2] =l’ i v(v(l)=11) = 11, així que t[2]=t[2] =t’ es converteix en ‘e’ (fent 11 passes a la dreta començant en ‘t’, ens passem de la ‘z’, així que seguim des de l’‘a’).

Feu un programa que implementi el Xifratge de Vigenère.

Entrada

L’entrada consisteix en diversos casos, cadascun en dues línies, les quals contenen ss i tt, respectivament. Ni ss ni tt són paraules buides. A més de lletres minúscules, tt pot contenir “barres baixes” (‘_’).

Sortida

Escriviu una línia per a cada cas, amb el xifratge de tt tal i com s’ha explicat anteriorment, substituïnt cada ‘_’ per un espai.

Informació del problema

Autoria: Salvador Roura

Generació: 2026-01-25T11:07:50.213Z

© Jutge.org, 2006–2026.
https://jutge.org