Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабки / 7-8 / 7-8 ТЗИ Бойко

.docx
Скачиваний:
1
Добавлен:
27.01.2024
Размер:
206.3 Кб
Скачать

Бойко Є А Варіант 3

ПРАКТИЧНА РОБОТА №7-8

Тема: Програмна реалізація шифрів перестановки. Розкриття шифру Цезаря

Мета: навчитися виконувати розкриття шифру Цезаря.

ХІД РОБОТИ

мюшхмрыпыэхяимыммчнчмянчыпыщмяымпмйяыцмюплфхмпыфъхчнтямпыьэыюмымю етюяпыпнъххмюыоюяптъъымшхърпхюяхгтючхбмчэхятэхтпмятчюя ншиъыюяхмыяшхгнкехбммыямъноыэнмфънчыпмяымутмянчытмюыоюяптъъымшхърпхюяхгтючхцммчнчмхфышхэыпнъъзцмыямьэывтююнмчыщщ ъхчнвххммтрымнъншхфтмятыэхлммхшхмятчюяыпнлмшхърпхюяхчнмюяншчхпнтяюлмюмятщхмутмьэыоштщнщхмчыяыэзтмпзлпхшхюимьэхмнъншхфтмьыъляхлмчыъятчюян

Програмний код розкриття шифру Цезаря

Скріншот роботи програми

Програмний код

<?php echo "<pre>"; $table2 = [" " => 0.175, "А" => 0.062, "Б" => 0.014, "В" => 0.038, "Г" => 0.013, "Д" => 0.025, "Е" => 0.072, "Ж" => 0.007, "З" => 0.016, "И" => 0.062, "Й" => 0.010, "К" => 0.028, "Л" => 0.035, "М" => 0.026, "Н" => 0.053, "О" => 0.090, "П" => 0.023, "Р" => 0.040, "С" => 0.045, "Т" => 0.053, "У" => 0.021, "Ф" => 0.002, "Х" => 0.009, "Ц" => 0.004, "Ч" => 0.012, "Ш" => 0.006, "Щ" => 0.003, "Ъ" => 0.014, "Ы" => 0.016, "Ь" => 0.016, "Э" => 0.003, "Ю" => 0.006, "Я" => 0.018]; $alphabet = []; foreach ($table2 as $symbol => $frequency) { $symbol = mb_strtolower($symbol); $FiA[$symbol] = $frequency; $alphabet[] = $symbol; } echo "<hr>Array FiA<br>"; print_r($FiA); $alphabet_f = array_flip($alphabet); $text = " мюшхмрыпыэхяимыммчнчмянчыпыщмяымпмйяыцмюплфхмпыфъхчнтямпыьэыюмымю етюяпыпнъххмюыоюяптъъымшхърпхюяхгтючхбмчэхятэхтпмятчюя ншиъыюяхмыяшхгнкехбммыямъноыэнмфънчыпмяымутмянчытмюыоюяптъъымшхърпхюяхгтючхцммчнчмхфышхэыпнъъзцмыямьэывтююнмчыщщ ъхчнвххммтрымнъншхфтмятыэхлммхшхмятчюяыпнлмшхърпхюяхчнмюяншчхпнтяюлмюмятщхмутмьэыоштщнщхмчыяыэзтмпзлпхшхюимьэхмнъншхфтмьыъляхлмчыъятчюян "; $buf = preg_split('//u', $text, null, PREG_SPLIT_NO_EMPTY); // Определяем частоты символов шифротекста $uniq_buf = array_unique($buf); $buf_count = count($buf); $FiC = []; $symbol_frequency = []; foreach ($uniq_buf as $i => $vu) { foreach ($buf as $v) { if ($v === $vu) $symbol_frequency[$i]++; } } foreach ($symbol_frequency as $i => $vu) { $symbol = $uniq_buf[$i]; $FiC[$symbol] = number_format($vu / $buf_count, 3); } echo "<hr>Array FiC<br>"; print_r($FiC); echo "<hr>"; //Расшифровака с перебором ключей (без учёта частоты) for ($key = 1; $key <= count($FiA); $key++) { echo "key: $key<br>"; foreach ($buf as $symbol) { $ind = $alphabet_f[$symbol]; echo $alphabet[$ind + $key]; } echo "<br>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>"; echo "key: -$key<br>"; foreach ($buf as $symbol) { $ind = $alphabet_f[$symbol]; echo $alphabet[$ind - $key]; } echo "<hr>"; }

Відповідь: сли говорит о как таковом то в той свзи возникает вопрос о сествовании собственно лингвистиески критериев тексталности отлиаи от набора знаков то же такое собственно лингвистиеский как изолированнй от проесса коммникаии его анализе теори или текстова лингвистика сталкиваетс с теми же проблемами которе ввилис при анализе понти контекста

Висновок : На практичній роботі навчився виконувати розкриття шифру Цезаря.