Adivinhador César - GregorioFornetti/CriPython GitHub Wiki

Vídeo tutorial

Caso goste de assistir vídeos tutorias, clique aqui para assistir um vídeo sobre o adivinhador cesar

Adivinhador da cifra de César

Abaixo há uma imagem do "menu: adivinhador césar" com algumas regiões demarcadas com um retângulo vermelho:

Adivinhador César

Explicando cada área demarcada, temos:

1 - Escolha o modo da cifra de césar que você deseja tentar traduzir. OBS: caso a mensagem encriptada tenha mais letras do que caracteres especiais, é mais interessante utilizar o modo "apenas letras". Caso a mensagem tenha vários caracteres especiais, a melhor opção é "vários caracteres".

2 - Nessa região você deve digitar a mensagem encriptada

3 - Após escolher o modo desejado e escrever a mensagem encriptada, clique em "executar" para que o programa tente achar a melhor tradução possível para essa mensagem. O resultado será mostrado nessa área.

Funcionamento

Essa implementação tentará descobrir a melhor tradução possível para uma mensagem encriptada pela cifra de César. Para isso, o programa tentará traduzir a mensagem com todas as chaves possíveis ("apenas letras": 26 chaves; "vários caracteres": 667 chaves) e analisará cada uma das mensagens traduzidas. Essa análise leva em conta a frequência de uso das letras do alfabeto do idioma configurado em seu programa, e a mensagem traduzida que chegar mais perto dessa frequência será a mensagem mostrada pelo programa após a execução.

OBS 1: Mensagens longas podem demorar um longo tempo para serem analisadas.

OBS 2: O modo "vários caracteres" é mais demorado que o "apenas letras" já que mais chaves precisaram ser testadas.

OBS 3: Caso tenha curiosidade em saber a frequência de ocorrências das letras em português, há uma tabela com essas frequências logo abaixo:

Letra Frequência
A 14,63%
B 1,04%
C 3,88%
D 5,01%
E 12,57%
F 1,02%
G 1,3%
H 1,28%
I 6,18%
J 0,4%
K 0,02%
L 2,78%
M 4,74%
N 5,05%
O 10,73%
P 2,52%
Q 1,2%
R 6,53%
S 7,81%
T 4,34%
U 4,63%
V 1,67%
W 0,01%
X 0,21%
Y 0,01%
Z 0,47%

OBS 4: A frequência de letras utilizada pelo programa varia com o idioma selecionado. Por exemplo, se você escolher o idioma inglês, a frequência de letras será da língua inglesa.