Автор работы: Пользователь скрыл имя, 15 Сентября 2013 в 21:10, реферат
Алгоритм – це скінчена послідовність вказівок (команд), виконання яких дозволяє за обмежений час отримати розв’язок задачі.
Сам термін “алгоритм” утворився в результаті перекладу на європейські мови імені арабського математика ІХ століття Аль-Хорезмі, який описав правила (алгоритми) виконання основних арифметичних операцій у десятковій системі числення.
Алгоритми,їх основні властивості.
Способи представлення алгоритмів.
Блок-схеми. Приклади створення блок-схем
Поняття про криптографію.
Методи кодування інформації.
Приклади криптографічних задач.
Поняття рекурсії. Рекурсія в синтаксичних правилах.
Задача про Ханойські вежі.
План:
Алгоритми,їх основні властивості
Алгоритм – це скінчена послідовність вказівок (команд), виконання яких дозволяє за обмежений час отримати розв’язок задачі.
Сам термін “алгоритм” утворився в результаті перекладу на європейські мови імені арабського математика ІХ століття Аль-Хорезмі, який описав правила (алгоритми) виконання основних арифметичних операцій у десятковій системі числення.
У своїй практичній діяльності люди постійно мають справу із алгоритмами (послідовностями вказівок, інструкціями, правилами тощо). Для прикладу можна назвати приготування кулінарної страви згідно з рецептом, користування міжміським телефоном-автоматом, пошук слова у словнику, розв’язування квадратного рівняння.
Кожний алгоритм повинен
відповідати наступним
Властивості алгоритмів
1. Скінченність. Виконання алгоритму повинно приводити до очікуваного результату за скінченну кількість кроків.
2. Результативність. Виконання
алгоритму завжди повинно
3. Формальність. Виконавець
відповідно до алгоритму
4. Визначеність. Будь-який
алгоритм повинен бути
5. Масовість. За допомогою
складеного алгоритму повинен
розв’язуватись цілий клас
6. Зрозумілість. В алгоритмі повинні бути лише операції, які будуть зрозумілі виконавцеві.
Алгоритми можна описувати за допомогою слів, спеціальних мов, використовуючи спеціальні формули, таблиці, графіки, блок-схеми, інші засоби. Алгоритм записується засобами мови, зрозумілої виконавцю. Для людини – це природна мова. Для комп’ютера мова складається з нулів та одиниць. Використання такої мови для складання програм є неефективним. Тому використовуються спеціальні мови – мови програмування. Мова програмування дозволяє записувати команди у такій формі, щоб їх можна було автоматично замінити на машинні коди. Це перетворення здійснюється автоматично за допомогою спеціальних програм-перекладачів, які називаються трансляторами.
Способи представлення алгоритмів
Виділяють декілька основних
видів представлення
1. Форма опису. Всі команди описуються за допомогою простих речень.
Форма опису найчастіше призначається
виконавцю-людині, власне кожного дня
ми в своєму житті використовуємо
цей вид представлення
Алгоритм «Ранок»;
2. У процесі розробки
алгоритму можуть
Форми запису алгоритму:
Схемна:
Блок-схеми
Цей варіант представлення являється найдоступнішим для пояснення розв’язку поставленої задачі і наочно показує кроки знаходження результату. Розглянемо основні компоненти, що використовуються в даному виді представлення алгоритмів:
Блок-схема алгоритму визначення дієвідміни в дієслові.
Використовуючи дані блоки, можна подати, наприклад, алгоритм чищення картоплі в такому вигляді:
Поняття про криптографію
Криптографія - це наука про способи перетворення інформації з метою її захисту від незаконних користувачів. Методи рішення протилежного завдання (злом криптографічного захисту) становлять предмет іншої науки - криптоаналізу. Разом з тим, було б неправильним розділяти криптографію і криптоаналіз. І криптографія, і криптоаналіз вивчають одні й ті ж об'єкти, але з різних точок зору. Тому вони швидше є двома частинами однієї і тієї ж науки (вона називається «кріптологія»), а не незалежними дисциплінами. Вивчати їх теж треба спільно, тому що неможливо серйозно займатися криптографією (наприклад, розробляти шифри), не вивчивши криптоаналіз. Таким чином, наш предмет правильніше було б називати криптології. Однак, враховуючи сформовану традицію, усюди в даних методичних вказівках буде використовуватися термін «криптографія». Проблеми та методи криптоаналізу зараз будуть порушені тільки побічно, докладний виклад цих методів планується в іншій частині методичних вказівок.
Методи кодування інформації
Щоб передати інформацію, її
необхідно закодувати відповідно до
природи каналу передачі. Наприклад,
розмова по телефону (звукові сигнали)
автоматично кодується в
Кодування - це перетворення інформації без зміни її змісту в інший вигляд за допомогою певного коду. Код - це набір правил перетворення для кодування. Прикладом учнівського кодування є такий прийом: випису¬ється алфавіт і всі букви нумеруються за порядком. Наприклад, так: За допомогою цієї кодової таблиці можна написати зашиф¬ровану записку, де букви замінені відповідними числами. Наприклад, таку: З 1 22 33 6 1 14 22 20 11 22 1 23 11 1 16 4 7 2 21 24 Одержувач такої записки повинен користуватися цією ж кодовою таблицею, щоб розшифрувати і прочитати повідомлення. У комп'ютері носіями інформації є електричні або магнітні сигнали, які можуть мати лише два значення: 0 - вимкнуто (нема струму, розмагнічено) або 1 - ввімкнуто (є струм, намагнічено). За допомогою таких 0 і 1 кодують будь-яку інформацію, яку обробляє комп'ютер. Якщо застосувати згаданий метод, то цифр 0 і 1 вистачить на позначення лише двох символів. Можна застосувати кодування комбінацією із кількох Oil. Якщо взяти по два знаки (00, 01. 10, 11), це дозволить кодувати вже 4 символи. Тризначний код дає 8 комбінацій, чотиризначний - 16. Цього мало для зображення літер алфавіту, цифр і розділових знаків, спеціальних символів тощо. Такої кількості символів вистачає для відображення літер, цифр, розділових, а також графічних елементів. Малюнки і звуки зображуються тими ж комбінаціями, але перед ними стоїть спеціальний знак, який вказує на характер інформації.
Усі символи, які використовує
комп'ютер, заносяться в табли¬цю і
нумеруються десятковими
Витяг з кодової таблиці символів ASCII
В сучасних програмах
розповсюджене кодування
Модель криптографічного системиНайпростішу модель криптографічного системи можна зобразити так, як показано на малюнку (див. рис. 1). Таким чином, є певна інформаційна система, яка включає двох або більше абонентів (законних користувачів) і канал (або канали), за якими абоненти можуть обмінюватися повідомленнями. Є також можливість появи противника, тобто незаконного користувача. Противник може перехоплювати повідомлення, що передаються абонентами один одному.
Найпростіша модель криптосистеми
Рис. 1
Тут необхідні наступні пояснення.
По-перше, противник може бути як зовнішнім
(тобто не входити в число абонентів
системи), так і внутрішнім (бути
абонентом системи). В останньому
випадку цей абонент вважається
незаконним користувачем, якщо він
намагається отримати доступ до повідомлень,
на які не має права (наприклад, конфіденційні
повідомлення, якими обмінюються
інші абоненти).По-друге, противник
може перехоплювати повідомлення з
різними цілями - наприклад, з метою
розголошення перехоплюваних інформації
(використання цієї інформації в своїх
цілях або передача інформації іншій
особі), підміни або імітації повідомлення
і т.д. Такі цілі називаються погрозами.
Для захисту від різних видів
загроз необхідно застосовувати
різні криптографічні методи. Розглянута
нами завдання забезпечення конфіденційності
інформації являє собою завдання
захисту від загрози
Поняття рекурсії
Поняття підпрограми тісно пов’язане з одним методом розв’язання задач, яке має назву рекурсія. Рекурсія – це метод визначення чи вираження функції, процедури, мовної конструкції чи рішення задачі за допомогою тієї ж функції, процедури та т.п. Слово рекурсивний, рекурентний вийшло від латинського “recurro” (бігти назад, вертатися).
Термін рекурсія дуже популярний
у математиці і програмуванні. У
широкому смислі, рекурсія — це звертання
до самого себе (цей термін походить
від латинського слова recursio —
повернення). У математиці і програмуванні
цей термін використовується при
визначенні так званих рекурсивних
функцій і рекурсивних
Якщо відомо алгоритм розв'язку задачі для найпростіших даних, та як звести розв’язок до більш простих даних в інших випадках, має сенс використати рекурсію.
Співвідношення, в яких для обчислення поточного значення використовуються значення, отримані на попередніх етапах обчислення називають рекурентними.
Задача про Ханойські вежі.
Розглянемо класичну
задачу про ханойські вежі. Історія
цієї задачі базується на
Уточнимо постановку задачі. Нехай ми маємо три спеціальних сердечники, на яких проходить переміщення дисків. Висота сердечників достатня для того, щоб на ній могли розміститись всі n дисків. Всі диски різного діаметру, а внутрішній отвір більший за діаметр сердечників. Спочатку всі диски розміщені на першому сердечнику в спадному, згідно зовнішнього діаметра, порядку. Їх потрібно перенести на третій сердечник, використовуючи другий сердечник, так , щоб вони розмістились в такому ж порядку, як були на першому сердечнику. При переміщеннях потрібно дотримуватись такого обмеження: ніколи диск більшого діаметра не може знаходитись зверху хоча б над одним диском меншого діаметра.
Для переносу можна
запропонувати наступний
* Один диск можна перенести прямо на потрібний сердечник.
* N дисків можна перемістить так:
1. Перемістити останній (N-ий) диск прямо на третій (правий) сердечник;