Некоторые вопросы информатики
Алгоритм – это точное предписание, которое задаёт вычислительный процесс (алгоритмический процесс), начинающийся с произвольного исходного данного (из некоторой совокупности возможных для данного алгоритма исходных данных) и направленный на получение полностью определяемого этим исходным данным результата. (В. А. Успенский, Математический энциклопедический словарь).
Основные свойства алгоритмов: • дискретность, • определённость, • понятность, • результативность, или конечность, • универсальность, или массовость.
Блок – схемы – это графический способ задания алгоритма. Условные обозначения: Начало - конец Процесс Ввод-вывод Типовой процесс Условие
Три основных алгоритмических конструкции: последовательная (линейная), циклическая, ветвящаяся (условная).
Примеры задач, в общем случае не имеющих алгоритмического решения. А. Задача о замощении Б. Вычисление совершенных чисел
Задача о замощении. Дан набор многоугольников, требуется определить, возможно ли покрыть всю плоскость только этими многоугольниками без зазоров и наложений? Пример: плитки из квадратов, примыкающих один к другому сторонами (полимино). В 1966 г. американский математик Роберт Бергер показал, что ответ на поставленный выше вопрос в общем случае отрицателен.
Замощение плоскости: i — равносторонними треугольниками, ii — квадратами, iii — правильными шестиугольниками
Один из вариантов полимино – пентамино.
Вычисление совершенных чисел. Совершенные числа – это числа, которые равны сумме своих делителей (исключая само число). Определим функцию S(n) = n-ое по счёту совершенное число. Задача состоит в том, чтобы вычислить S(n) по произвольно заданному n. Общего метода вычисления совершенных чисел нет.
Сколько существует совершенных чисел, существуют ли нечётные совершенные числа? Первые три совершенных числа: 6=1+2+3 28 = 1+2+4+7+14 496=1+2+4+8+16+31+62+124+248 8128 33 550 336 8 589 869 056 137 438 691 328
Пример использования алгоритмического описания в филологии. Владимир Пропп «Морфология волшебной сказки» . В Университете Брауна (США) алгоритм, описанный В. Проппом, был реализован в виде компьютерной программы генерации сказок (digital propp).
Язык программирования – формальная знаковая система, используемая для описания алгоритмов, исполнителем которых является компьютер. Количество таких языков очень велико (исчисляется тысячами) и постоянно увеличивается. Например, на сайте The Encyclopedia of Computer Languages (http: //hopl. murdoch. edu. au/) приведён список из 8512 языков.
Три уровня языков программирования: • машинные языки (низший уровень), • машинно-ориентированные (ассемблеры), • машинно-независимые (языки высокого уровня). Чем выше уровень языка, тем этот язык ближе к естественной для человека форме описания.
Тест Тьюринга http: //www. turinghub. com/ Loebner Prize (премия Лёбнера, даётся победителю соревнования программ в прохождении теста Тьюринга): http: //www. loebner. net/Prizef/loebnerprize. html