Termín odevzdání | 21.11.2021 23:59 CET |
---|---|
Bodový zisk | 5b |
Počet uploadů | 10 |
Naším úkolem je rozluštit zprávu zakódovanou Caesarovou šifrou, která funguje na principu záměny písmene z abecedy za písmeno posunuté o pevně určený počet míst. V našem případě máme k dispozici nejen zašifrovaný text, ale také nespolehlivě odposlechnuté originální znění zprávy, tj. některé znaky originální zprávy jsou chybně zapsány. Řešení tak můžeme založit na testování všech možností kódování Caesarovou šifrou a porovnání s odposlechnutým textem. Posun s největší shodou dekódovaného textu s odposlechnutou zprávu budeme považovat za správný a takto dekódovaný text je náš požadovaný výstup. Obecně nemusí tento postup vést na unikátní správné řešení, nicméně v testovaných případech vždy existuje unikátní řešení.
Ve vstupním souboru, jehož jméno je programu předáno jako argument příkazové řádky, očekávejte dvě posloupnosti znaků (texty) na samostatných řádcích. První text je zakódovaná zpráva a druhý text je nespolehlivě odposlechnutý text.
Error: Chybny vstup!
” a skončí.
Error: Chybna delka vstupu!
” a skončí.
Error: Chybny vstup!
” a skončí.
Do výstupního souboru output.txt
vypište dekódovanou zprávu jako posloupnost znaků bez znaku konce řádku.
V prvním příkladu je zašifrován text “Helloworld
”. Posun je zde o 42 písmen. (16 míst je mezi 'h' a 'x'; 26 pak mezi malými a velkými písmeny). Zašifrovaný text je tedy “xUbbemehbT
”.
Odposlechnutý text může být například “??lloworld
”, kde písmena na místě otazníku špatně odposlechneme a dostaneme jiné náhodné písmeno, například “XYlloworld
”.
Vstup | Očekávaný výstup | Očekávaný chybový výstup |
---|---|---|
xUbbemehbT XYlloworld | Helloworld | žádný |
Příklad vyhodnocení. Největší počet shodných písmen (8/10) má posun o 10, proto jej vyhodnotíme jako správný výsledek.
00: xUbbemehbT ~ XYlloworld > 0 correct letters 01: yVccfnficU ~ XYlloworld > 0 correct letters 02: zWddgogjdV ~ XYlloworld > 1 correct letters 03: AXeehphkeW ~ XYlloworld > 0 correct letters 04: BYffiqilfX ~ XYlloworld > 1 correct letters 05: CZggjrjmgY ~ XYlloworld > 0 correct letters 06: DahhksknhZ ~ XYlloworld > 0 correct letters 07: Ebiiltloia ~ XYlloworld > 1 correct letters 08: Fcjjmumpjb ~ XYlloworld > 0 correct letters 09: Gdkknvnqkc ~ XYlloworld > 0 correct letters 10: Helloworld ~ XYlloworld > 8 correct letters -- result 11: Ifmmpxpsme ~ XYlloworld > 0 correct letters 12: Jgnnqyqtnf ~ XYlloworld > 0 correct letters ... 50: vSZZckcfZR ~ XYlloworld > 0 correct letters 51: wTaadldgaS ~ XYlloworld > 0 correct letters 52: xUbbemehbT ~ XYlloworld > 0 correct letters
Vstup | Očekávaný výstup | Očekávaný chybový výstup |
---|---|---|
mnoXYhnJLJ JCudvgtXRi | studentPRP | žádný |
Vstup | Očekávaný výstup | Očekávaný chybový výstup |
---|---|---|
fghQRa-CEC scbdeMKARZ | žádný | Error: Chybny vstup! |
Vstup | Očekávaný výstup | Očekávaný chybový výstup |
---|---|---|
fghQRa scbdeMK | žádný | Error: Chybna delka vstupu! |