Основы-информатики.-Лекция-1.-2013-г. (1238895)
Текст из файла
Основы информатики1.2.3.4.Введение в алгоритмыАрхитектура ЭВМОперационные системыООПКоротин Павел Николаевичcs.mipt.ruВведение в алгоритмы• Формализация понятия «алгоритм»• Формальные модели: Машина Тьюринга и Нормальные алгорифмыМаркова• Си-машина• Структуры данных и фундаментальные алгоритмы• Анализ сложности алгоритмов“От живого созерцания к абстрактномумышлению и от него к практике - таковдиалектический путь познания истины,познания объективной реальностиВ.И.ЛенинИнтуитивное понятие «алгоритм»”Алгоритм поиска НОД(a,b)• a,b > 0 и пусть a < bПеребор: 1 – подходит, 2 - ?, 3 - , … а -?Алгоритм Эвклида1.
Разделить первое на второе и получитьостаток2. Если остаток равен нулю, то второе – результат3. Иначе: заменить первое на второе,второе – на остаток и перейти к шагу 1Алгоритм Эвклида. Доказательство.B = Aq1+r1,0<r1<AA = r1q2+r2,0<r2<r1r1 = r2q3+r3,0<r3<r2…rk-2 = rk-1qk+rk, 0<rk<rk-1rk-1=rkqk+1Пусть d=НОД(A,B):r1÷d r2÷d … rk÷dТакже НОД(rk-1,rk)=rk, …,A÷rk, B÷rk d=rkАлгоритм Эвклида.
Пример.НОД(10,15)Первое Второе Остаток Действие101510Шаг 315105Шаг 31050Шаг 2Алгоритм ЭвклидаКомпоненты• Входные данные (10,15)• Алгоритм - текст на русскомязыке• Исполнитель – кто-то, ктопонимает смыслнаписанного текста• ОграниченияСвойства• Дискретность• Определенность(детерминизм)• Конечность• Результативность• Массовость• ЭффективностьФормализация понятия «алгоритм»Исходные данныеРезультатыОтступление:основные понятия тории множеств• Элемент множества а• МножествоА• Элемент принадлежит множеству а А• Не принадлежитаА• А = {a,b,c}•• Подмножество AB a A : a B• A=B A BиBAОтступление:основные операции тории множеств• Объединение• Пересечение• Разность• Декартово (прямое) произведениеА={0,1}, B={a,b,c},АВAB = {aA:aB}A \ B = {aA:aB}AхBA x B = {0a, 0b, 0c, 1a, 1b, 1c}A1 x A2 x A 3 x … x AnA0=, A1=A, A2=A x A, An = A x A x A x … x AnФормализация понятия «Функция»• Множество F есть функция из множества А в Bтогда и только тогда, когда F A x B, причем,если aA, а b,cB и abF, и acF, то b=c.10,1515,256,914,21Формализация понятия «алгоритм»(окончание)• A={a1,a2,…,ap} - алфавит• A*=A0A1 A2 …An - множество всех слов,состоящих не более чем из n символов.• F: A* A*Алан ТьюрингНорберт ВинерЭмиль ПостАлонзо ЧёрчАндрей МарковПример первый: Машина Тьюринга1936 годУстройство машины Тьюринга• конечный алфавит символов = {a0,a1,…an};• конечный список Q={q0,q1,…,qm} элементарных состояний;• программа, составленная из команд Tij, имеющих вид:aiqja’iq’jD, где D - один из символов движения L, R или S.NB: работа машины зависит от её начального состояния… a* a* a* a* a* a* …q#Тезис Чёрча - Тьюринга• Любая вычислительная процедураможет быть выполнена на машинеТьюринга.Написать программу для машины Тьюринга,заполняющую ячейку ленты, на которуюуказывает головка в конечном состоянии,символом 1, если на ленте задано правильноескобочное выражение и символом 0 – впротивном случае.Начальное положение головки – установлена напервый символ скобочного выражения.#include <iostream>#include <string>using namespace std;Вариант программы наС++string str;int main() {int s=0;cin >> str;for(int i=0;i<str.length();i++)if(str[i]=='(') s++; else if(--s<0) break;cout << (s?"No":"Yes") << endl;return 0;}Начнем анализ с закрывающейсяскобки:начальное состояние – её поиск(((()()(()))))()q0( q0 Rq1Скобка найдена:отметим её и новоесостояние – поиск напарника((((X()(()))))()Xq0( q0 RХ q1 Lq1Напарник найден:отметим его и начнем поискновой закрывающейся скобки(((XХ()(()))))()Xq0q1( q 0 R Х qo RХ q1 LНапарник найден:отметим его и начнем поискновой закрывающейся скобки(((XХ()(()))))()Xq0q1( q 0 R Х qo RХ q1 LX q0 R Х q 1 LНапарник найден:отметим его и начнем поискновой закрывающейся скобки(((XХ()(()))))()Xq0q1( q 0 R Х qo RХ q1 L ) q1 LX q0 R Х q 1 LНапарник не найден:не верное скобочное выражение…Х()(()))))()Xq0q1( q 0 R Х qo RХ q1 L ) q1 LX q0 R Х q 1 L0-SНапарник найден:отметим его и начнем поискновой закрывающейся скобки(((XХ()(()))))()Xq0q1( q 0 R Х qo RХ q1 L ) q1 LX q0 R Х q 1 L0-SЗакрывающейся скобки ненайдено: новое состояние –поиск открывающихся скобок(((Х…()Xq0( q0 RХ q1 LX q0 R q2 Lq1q2Х qo R) q1 LХ q1 L X q2 L0-SНайдены – структура не верная,не найдены - верная(((Х…()Xq0( q0 RХ q1 LX q0 R q2 Lq1q2Х qo R 0 - S) q1 LХ q1 L X q2 L0-S 1-SАлфавит(q0 (q0R = {(,),0,1,X})q0 Xq1LXq0 Xq0RСостоянияq0 – исходное и поиск q0 q2Lq1 – влево до парной Xq1 Xq1Lq2 - влево до финиша )q1 )q1L(q1 Xq0Rq1 0-SXq2 Xq2L)q2 --(q2 0-Sq2 1-S… (()()) …q0(q0 (q0R)q0 Xq1LXq0 Xq0Rq0 q2LXq1 Xq1L)q1 )q1L(q1 Xq0Rq1 0-SXq2 Xq2L)q2 --(q2 0-Sq2 1-S… (()()) …q0(q0 (q0R)q0 Xq1LXq0 Xq0Rq0 q2LXq1 Xq1L)q1 )q1L(q1 Xq0Rq1 0-SXq2 Xq2L)q2 --(q2 0-Sq2 1-S… (()()) …q0(q0 (q0R)q0 Xq1LXq0 Xq0Rq0 q2LXq1 Xq1L)q1 )q1L(q1 Xq0Rq1 0-SXq2 Xq2L)q2 --(q2 0-Sq2 1-S… (( Х ()) …q1(q0 (q0R)q0 Xq1LXq0 Xq0Rq0 q2LXq1 Xq1L)q1 )q1L(q1 Xq0Rq1 0-SXq2 Xq2L)q2 --(q2 0-Sq2 1-S… ( Х Х ()) …q0(q0 (q0R)q0 Xq1LXq0 Xq0Rq0 q2LXq1 Xq1L)q1 )q1L(q1 Xq0Rq1 0-SXq2 Xq2L)q2 --(q2 0-Sq2 1-S… ( Х Х ()) …q0(q0 (q0R)q0 Xq1LXq0 Xq0Rq0 q2LXq1 Xq1L)q1 )q1L(q1 Xq0Rq1 0-SXq2 Xq2L)q2 --(q2 0-Sq2 1-S… ( Х Х Х Х ) …q0(q0 (q0R)q0 Xq1LXq0 Xq0Rq0 q2LXq1 Xq1L)q1 )q1L(q1 Xq0Rq1 0-SXq2 Xq2L)q2 --(q2 0-Sq2 1-S… ( Х Х Х Х Х …q1(q0 (q0R)q0 Xq1LXq0 Xq0Rq0 q2LXq1 Xq1L)q1 )q1L(q1 Xq0Rq1 0-SXq2 Xq2L)q2 --(q2 0-Sq2 1-S… Х Х Х Х Х Х …q0(q0 (q0R)q0 Xq1LXq0 Xq0Rq0 q2LXq1 Xq1L)q1 )q1L(q1 Xq0Rq1 0-SXq2 Xq2L)q2 --(q2 0-Sq2 1-S… Х Х Х Х Х Х …q2(q0 (q0R)q0 Xq1LXq0 Xq0Rq0 q2LXq1 Xq1L)q1 )q1L(q1 Xq0Rq1 0-SXq2 Xq2L)q2 --(q2 0-Sq2 1-S•••) 0 -> X 1 L( 0 -> ( 0 RX 0 -> X 0 R2 – Финишный поиск влево0 0 -> 0 2 L( 1 -> X 0 RX 1 -> X 1 L0 1 -> n 0 S( 2 -> n 0 SX 2 -> X 2 L0 2 -> y 0 S0 – Старт и поиск вправо(,XXLY(1 – Поиск влевоRX)XX(LNКомпозиция машин Тьюринга•••) 0 -> X 1 L( 0 -> ( 0 RX 0 -> X 0 R0 0 -> 0 2 L( 1 -> X 0 RX 1 -> X 1 L0 1 -> n 0 S( 2 -> n 0 SX 2 -> X 2 L0 2 -> y 0 S•…000((((())())()))0()()000…••) 0 -> X 1 L( 0 -> ( 0 RX 0 -> X 0 R0 0 -> 0 2 L( 1 -> X 0 RX 1 -> X 1 L0 1 -> n 0 S( 2 -> n 0 SX 2 -> X 2 L0 2 -> y 0 SКомпозиция машин Тьюринга•••) 0 -> X 1 L( 0 -> ( 0 R …000xxxxxxxxxxxxxx0()()000…X 0 -> X 0 R0 0 -> 0 2 L( 1 -> X 0 RX 1 -> X 1 L0 1 -> n 0 S( 2 -> n 0 SX 2 -> X 2 L0 2 -> y 0 SКомпозиция машин Тьюринга•••) 0 -> X 1 L( 0 -> ( 0 R …000xxxxxxxxxxxxxx0()()000…X 0 -> X 0 R0 0 -> 0 2 LX 3 -> 0 3 R0 3 -> 0 4 R( 1 -> X 0 RX 1 -> X 1 L0 1 -> n 0 S( 2 -> n 0 SX 2 -> X 2 L0 2 -> 0 3 R•••) 4 -> X 5 L( 4 -> ( 4 RX 4 -> X 4 R0 4 -> 0 6 L( 5 -> X 4 RX 5 -> X 5 L0 5 -> n 0 S( 6 -> n 0 SX 6 -> X 6 L0 6 -> y 0 S.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.