- •1. Особенности информатики как науки и учебной дисциплины. Роль информации в современном обществе.
- •2. Этапы становления и развития информатики. Информационные барьеры в истории человечества.
- •3. Свойства информации, как признак ее классификации.
- •4. Информационная культура.
- •5. Информационные технологии
- •6. Информационные ресурсы
- •7. Информационные системы
- •8. Состав информационных процессов. Передача информации, как один из информационных процессов.
- •9. Существо подходов к измерению количества информации.
- •10. Мера количества информации р. Хартли
- •11. Мера количества информации к. Шеннона для сообщений с неравновероятными независимыми символами.
- •12. Логические элементы пэвм. Основные законы и тождества алгебры логики.
- •13. Истоки вычислительной техники
- •14. История создания и развития отечественной вычислительной техники
- •15. Поколения эвм
- •16. Классификация эвм по области применения.
- •17. Структурная схема эвм по фон Нейману
- •18. Функционирование пэвм
- •19. Назначение, классификация, история создания и эволюции микропроцессоров
- •20. Иерархия подсистемы памяти
- •21. Внешние запоминающие устройства. Физические основы записи и хранения информации на магнитных носителях жестких дисков
- •22. Внешние запоминающие устройства. Физические основы записи, хранения и считывания информации с оптических дисков
- •23. Устройства ввода информации. Клавиатура. Ручной манипулятор «мышь»
- •24. Устройства вывода информации. Устройство дисплея на основе жидкокристаллической матрицы
- •25. Устройства вывода информации. Принцип действия лазерного принтера
- •26. Моделирование как метод научного познания. Основные термины и определения
- •27. Математическое (аналитическое) моделирование
- •28. Математическое имитационное моделирование
- •29. Классификация моделей
- •30. Понятие «алгоритм». Сложность алгоритмов
- •31. Свойства алгоритмов
- •32. Формы представления (задания) алгоритмов
- •33. Типовые структуры алгоритмов
- •34. Этапы создания программы. Основные характеристики программ
- •35. Этапы становления и развития технологий программирования
- •36. Классификация языков программирования
- •38. Классификация программного обеспечения пэвм
- •39. Структура системного программного обеспечения
- •40. Понятие об операционной системе
- •41. Операционные системы корпорации Microsoft
- •42. Два подхода к хранению и использованию данных в информационных системах
- •43. Понятие предметной области. Виды моделей баз данных. Иерархическая и сетевая модели
- •44. Виды моделей баз данных . Реляционная модель базы данных
- •45. Системы управления базами данных и их функции
- •46. Цели создания компьютерных сетей
- •47. Классификация компьютерных сетей
- •48. История создания и эволюция Internet
- •49. Понятие «Информационная безопасность»
- •50. Основные составляющие информационной безопасности.
- •51.Компьютерные вирусы. Признаки проявления.
- •52.Методы защиты от компьютерных вирусов
- •53. Модель криптографической симметричной системы.
- •54.Модель асимметричной системы шифрования.
- •55. Криптографическая система с открытым ключом
- •56. Электронная цифровая подпись
- •Требования к эцп
- •57. Общие сведения о Word
- •58. Общие сведения о Microsoft excel.
- •59. Microsoft pp
30. Понятие «алгоритм». Сложность алгоритмов
Современные ЭВМ являются программно-управляемыми системами. В свою очередь программы составляются на основании соответствующих алгоритмов.
Термин алгоритм применяется в настоящее время достаточно широко и далеко не всегда в области вычислительной техники. В связи с этим в обществе сложилось некоторое интуитивное понимание этого термина.
Научное же понятие алгоритма является основным в так называемой теории алгоритмов – направления в математике, открытого в 30-е годы трудами выдающихся математиков Д. Гильберта, А Черча, С. Клини, Э. Поста, А. Тьюринга.
Историки математики считают, что термин «алгоритм» произошел от арабского «algorism» и берет свое начало от имени автора знаменитого персидского учебника по математике (Абу Абд Аллах Мухаммед ибн Мусса аль Хорезми, 825 н.э буквально означавшего отец Абдуллы, Мухаммед, сын Муссы уроженец Хорезма).
Аральское мере в Центральной Азии тогда называлось Хорезм и район Хорезма располагался в бассейне Аму-Дарьи, южнее этого моря.
Аль Хорезм написал знаменитую книгу «Книга о восстановлении и противопоставлении». От названия этой книги, которая была посвящена решению линейных и квадратных уравнений, произошел еще один термин – «алгебра».
Постепенно форма и значение слова algorism изменилось. Приняв форму «algorithm» . уже в старинном немецком словаре 1747 г. можно прочитать термин - «algoritmus» - и его расшифровку – «понятие о четырех типах арифметических операций, а именно: о сложении, умножении, вычитании и делении».
Современное понятие «алгоритм» сформировалось в математике в 30-е годы 20 века. Начало систематической разработки теории алгоритмов положено работой А.А. Черча «Теория алгоритмов» (1936г).
Энциклопедия кибернетики так трактует понятие алгоритм – «точно определенное правило действий (программа) для которого задано указание, как и в какой последовательности это правило необходимо применять к исходным данным задачи, чтобы получить ее решение».
Это определение можно проиллюстрировать с помощью простой схемы (рис.10.1)
Задача
Алгоритмм
Программа
Вычислительное устройство
Входные данные
Выходные данные
Рисунок 10.1- Иллюстрация места алгоритма в процессе решения задачи с использованием ЭВМ
К 1950 г. слово алгоритм чаще всего ассоциировалось с алгоритмом Евклида, который представляет собой правило вычисления НОД двух целых положительных чисел. Суть алгоритма Евклида состоит в следующем. Пусть даны два целых положительных числа m и n. Требуется вычислить их НОД, т.е. наибольшее целое положительное число, на которое нацело делятся оба исходных числа.
Решить такую задачу можно несколькими путями.
1. Самый простой и интуитивно понятный. Пусть m = 15, n = 21. Введем вспомогательное число С и будем изменять его от 1 до m, если m < n.
Шаг 1. C = 1; m :c = 15; n : c = 21 Остаток r в обоих случаях равен 0, следовательно число 1 является общим делителем, что и естественно.
Шаг 2. С = 2 – не делятся без остатка оба числа;
Шаг 3. С = 3 – оба числа делятся без остатка., т.е число 3 является общим делителем. Запомним число 3.
Шаг 4. С = 4 – не делятся.
Шаг 5. С = 5 – не делятся и т д. Все остальные числа до 15 не являются делителем обоих чисел, следовательно, для чисел 15 и 21 НОД = 3.
Если принять за основную операцию – операцию деления и отдельно операцию сравнения остатка с нулем, то для реализации этой последовательности действий необходимо выполнить 40 операций.
2. При тех же самых исходных числах.
Шаг 1. С = 15 – не делятся.
Шаг 2. С = 14 – не делятся и т. д. Получим опять НОД = 3, но при этом выполним только 33 операции.
Евклид же предложил совершенно другой алгоритм.
Алгоритм Евклида используется для вычисления НОД двух целых положительных чисел (т.е. ограничениями на его применение является то, что числа должны быть обязательно целыми и положительными). Существо этого алгоритма заключается в следующем:
1) большее число поделить на меньшее;
2) меньшее число поделить на остаток от первого деления;
3) остаток от первого деления поделить на остаток от второго деления;
4) остаток от второго деления поделить на остаток от третьего деления;
5) и т.д до тех пор, пока в остатке не будет получен нуль.
Пример 1.1 Вычислить НОД чисел 192 и 264 (исходные числа положительные и целые).
264 ½192 192 ½ 72 72 ½ 48 48 ½ 24
192 1 144 2 48 1 48 2
72 48 24 0
Ответ: НОД (192,264) = 24 .
Известен алгоритм вычисления НОД трех целых положительных чисел. Покажем его на конкретном примере.
Пример 1.2 Найти НОД чисел 210, 150, 144.
Разложим каждое число на простые множители:
210 = 2 * 3 * 5 * 7;
150 = 2 * 3 * 5 * 5 ;
144 = 2 * 2 * 2 * 2 * 3 * 3 .
Выберем общие множители этих чисел. Их произведение будет равно НОД.
НОД ( 210, 150, 144 ) = 2 * 3 = 6, т.е. число 6 является наибольшим числом, на которое делятся 210, 150 и 144.
Очень важным и интуитивно понятным, но весьма сложно формализуемым в математике является понятие сложности алгоритма. Покажем это на конкретном примере.
Алгоритмы, для которых известна полиномиальная зависимость сложности, называются эффективными. Эффективность может быть временной и пространственной.
В заключение отметим, что в математике еще имеется много задач, для которых не удалось пока построить полиномиальный алгоритм. Одной из таких задач является задача вскрытия стойкого совершенного шифра.
