На бирже курсовых и дипломных проектов можно найти образцы готовых работ или получить помощь в написании уникальных курсовых работ, дипломов, лабораторных работ, контрольных работ, диссертаций, рефератов. Так же вы мажете самостоятельно повысить уникальность своей работы для прохождения проверки на плагиат всего за несколько минут.

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


курсовая работа Эйлеровы и гамильтоновы графы

Информация:

Тип работы: курсовая работа. Добавлен: 03.07.2012. Сдан: 2011. Страниц: 7. Уникальность по antiplagiat.ru: < 30%

Описание (план):


Содержание
Введение ………………………………………………………........................... 3
Глава 1. Основные  понятия теории графов.
1.1.Понятие графа …………………………………………...…………………. 4
1.2.Маршруты, пути  и циклы в графах ………………….  ………………….5
1.3.Подграфы ………………………………………………................................7
1.4.Степень вершины графа ………………………………………………….8
Глава 2. Эйлеровы графы.
2.1.Эйлеров путь. Полуэйлеров граф. Эйлерова цепь …………………..10
2.2.Признак Эйлеровости графа …………………………...………………..12
2. 3.Решение задач о лабиринтах ………………………………………...…………………….14
Глава 3. Гамильтоновы графы.
3.1.Гамильтонов путь. Полугамильтонов граф …………………………..20
3.2. Задача о «Кругосветном путешествии» ………………………………..22
3.3.Необходимое условие гамильтоновости графа.
 Теорема     Дирака ………………………………………...............................28
Список литературы ……………………………………………...................... 30 
 
 
 
 
 
 
 
 

Введение.
      Первая работа по теории графов, принадлежащая известному швейцарскому математику Л.Эйлеру, появилась в 1736г. Вначале теория графов казалась довольно незначительным разделом математики, так как она имела дело в основном с математическими развлечениями и головоломками. Однако дальнейшее развитие математики и особенно её приложений дало сильный толчок развитию теории графов. Уже в XIX столетии графы использовались при построении схем.
      В настоящее время эта теория находит многочисленное применение в разнообразных практических вопросах: при установлении разного рода соответствий, при решении транспортных задач, задач о потоках в сети нефтепроводов, в программировании и теории игр, теории передачи сообщений. Теория графов теперь применяется и в таких областях, как экономика, психология и биология. 
 
 
 
 
 
 
 
 
 
 
 
 
 

Глава 1. Основные понятия теории графов
1.1.Понятие графа.
          Граф G – пара (V,X), где V конечное непустое множество, содержащее p вершин, а Х-множество,  содержее q неупорядоченных пар различных вершин из V.
Каждую пару X={u,v} вершин в Х называют ребром графа G и говорят, что Х соединяет u и v.Мы будем писать X=uv и говорить, что u и v – смежные вершины. Вершина u и ребро Х инцидентны, так же как v и Х. Если два различных ребра X и Y инцидентны одной и той же вершине, то они называются смежными. Граф с р вершинами и q ребрами  называется (p;q)- графом.
          Множество всех верщин смежных с данной вершиной называется окружением этой вершины и обозначается N(v). Графы обычно изображаются с помощью диаграмм, так что вершины графа изображаются точками, а ребра - линиями, соединяющими точки (рис.1).
     
Рис. 1.
     Пустым называется граф без ребер. Полным называется граф, в котором каждые две его различные вершины смежные. Помимо этого, в теории графов рассматриваются также мультиграфы – это такие графы, в которых могут быть петли (т. е. некоторая вершина соединена сама с собой ребром) или некоторые пары вершины могут быть соединены между собой несколькими ребрами. 

1.2.Маршруты, пути и циклы в графах.
         Маршрут в графе – это последовательность соседних (смежных) вершин.
     Ясно, что можно определить маршрут  и как последовательность смежных  ребер (в этом случае ребра приобретают направление). Заметим, что в маршруте могут повторяться и вершины и ребра.
     Путь в графе (иногда говорят простой путь или простая цепь) – это маршрут без повторения вершин (а значит, и ребер). (Запись пути в графе зависит от того, как определены его ребра. Если ребра определены с помощью вершин, то записывают последовательность  тех вершин, через которые проходит путь. Если же ребра имеют собственные названия, то выписывается последовательность из этих названий.)
      Рассмотрим примеры. 1)На рисунке 1 жирными линиями показан  путь из точки А в точку В, который мы можем записать так: (AEDB). Другой путь из А в В показан пунктирными линиями, его можно записать как (l1l2l3). Заметим, что может существовать несколько путей из одной точки в другую.
        Циклом называется путь, у которого начало и конец совпадают.
На рисунке 1 циклами являются следующие пути: (AEFDA), (EFBCADE). 
     Контур  – это цикл без повторения вершин, за исключением первой вершины, совпадающей с последней.
Последовательности  вершин (рис. 2): 1–2–3–4–2–5 не простой  путь, а маршрут; последовательности 1–2–3–4–7–5 и 1–2–5 – простые пути; 1–2–3–4–2–5–6–1 –это цикл (но не контур); 1–2–5–6–1 – это контур.
 рис 2.
          Граф называется связным, если любые две его вершины можно соединить маршрутом (или путем). На рис. 2 изображен связный граф.
     Ребро, при удалении которого граф перестает  быть связным, иногда называют мостом или перешейком 
          2)Построим граф, изображающий отношение делимости на множестве {1,2,3,4,5,6,7,8,9,10}. Принцип такой: если от одного числа до другого есть цепь, ведущая вверх, то второе число делится на первое.

       рис. 3
1.3.Подграфы
        Подграф графа - это граф, являющийся подмоделью исходного графа, т.е. подграф содержит некоторые вершины исходного графа и некоторые ребра (только те, оба конца которых входят в подграф). Подграф, порожденный множеством вершин U это подграф, множество вершин которого - U, содержащий те и только те ребра, оба конца которых входят в U. Этот подраф обозначим через G(u). 
     Подграф называется остовным подграфом, если множество его вершин совпадает с множеством вершин самого графа.
На рис.4 изображены граф G и три его подграфа H1, H2 и H3, среди которых H3 является остовным, a H2 — порожденным.

Рис 4.
Важный класс  подграфов составляют подграфы, полученные в результате удаления вершин. Пусть v — вершина графа G. Граф Gv = G — v получается из графа G в результате удаления вершины v и всех инцидентных ей ребер. Очевидно, что         Gv = G(VG\v). На рис.5 изображен подграф G — 5, полученный из графа G, представленного на рис.4, удалением вершины 5. 

 рис 5.
1.4.Степень вершины графа.
      Степенью (или валентностью) вершины графа G называется число инцидентных ей ребер, т. е. число вершин в ее окружении. Будем обозначать степень вершины v через deg Gv (или deg v). Тем самым deg v= |N(v)|.
      Максимальная  и минимальная степени вершин графа G обозначаются символами ?(G) и ?(G) соответственно:| 
       Список степеней вершин графа называется его степенной последовательностью. Порядок членов в этой последовательности роли не играет.
      Вершина степени 0 называется изолированной, вершина степени 1 — концевой (или висячей).
        Ребро, инцидентное концевой вершине, также называется концевым.
      Вершина графа, смежная с каждой другой его  вершиной, называется доминирующей.
      Рассмотрим  сумму степеней всех вершин графа. Каждое ребро вносит в эту сумму 2, поэтому верно
      Утверждение  («лемма о рукопожатиях»). Сумма степеней всех вершин графа — четное число, равное удвоенному числу ребер:
       Возможная интерпретация этой леммы  такова: поскольку в каждом рукопожатии участвуют две руки, то при любом числе рукопожатий общее число пожатых рук четно (при этом каждая рука учитывается столько раз, во скольких рукопожатиях она участвовала).
      Следствие. В любом графе число вершин нечетной степени четно.
      Понятие степени вершины и лемма о  рукопожатиях сохраняются для мульти- и псевдографов. При этом каждая петля вносит в степень соответствующей вершины двойку. 
 
 
 
 
 
 
 
 
 
 
 

Глава 2. Эйлеровы графы. 

2.1.Эйлеров путь. Полуэйлеров граф. Эйлерова цепь.
     Рассмотрим  известную задачу о Кёнигсберских мостах: город Кёнигсберг расположен на островах, можно ли совершить прогулку по городу, пройдя по каждому мосту только один раз?(на рисунке 6 приведена схема города.) В 1736 году задача о семи мостах заинтересовала выдающегося математика, члена Петербургской академии наук Леонарда Эйлера, о чём он написал в письме итальянскому математику и инженеру Мариони от 13 марта 1736 года. В этом письме Эйлер пишет о том, что он смог найти правило, пользуясь которым легко определить, можно ли пройти по всем мостам, не проходя дважды ни по одному из них (в случае семи мостов Кёнигсберга это невозможно).

Рис 6.
На упрощённой схеме  части города (графе) мостам соответствуют  линии (рёбра графа), а частям города — точки соединения линий (вершины  графа).
  рис 7
   В ходе рассуждений  Эйлер пришёл к следующим выводам:
    Число нечётных вершин (вершин, к которым ведёт нечётное число рёбер) графа должно быть чётно. Не может существовать граф, который имел бы нечётное число нечётных вершин.
    Если все вершины графа чётные, то можно, не отрывая карандаша от бумаги, начертить граф, при этом можно начинать с любой вершины графа и завершить его в той же вершине.
    Граф с более чем двумя нечётными вершинами невозможно начертить одним росчерком.
Граф кёнигсбергских мостов имел четыре нечётные вершины (т.е. все), следовательно, этот граф нельзя начертить одним росчерком, поэтому невозможно пройти по всем мостам, не проходя ни по одному из них дважды. 

        Связный граф G называется эйлеровым, если существует замкнутая цепь, проходящая через каждое его ребро ровно один раз. Такая цепь называется эйлеровым циклом.
       Отметим, что в этом определении  требуется, чтобы каждое ребро  проходилось только один раз.  Если снять ограничение на  замкнутость цепи, то граф называется  полуэйлеровым, при этом каждый эйлеров граф будет полуэйлеровым.
Примеры.
 рис 8.
2.2.Признак Эйлеровости графа.
          Теорема 1. Если граф G обладает эйлеровым циклом, то он является связным, а все его вершины — четными.                             Доказательство: Связность графа следует из определения эйлерова цикла. Эйлеров цикл содержит каждое ребро и притом только один раз, поэтому, сколько раз эйлеров путь приведет конец карандаша в вершину, столько и выведет, причем уже по другому ребру. Следовательно, степень каждой вершины графа должна состоять из двух одинаковых слагаемых: одно результат подсчета входов в вершину, другое — выходов.
     Верно и обратное утверждение.
Теорема 2. Если граф G связный и все его вершины четные, то он обладает эйлеровым циклом.
Доказательство:  Покажем, что если начать путь из произвольной вершины графа G, то найдется цикл, содержащий все ребра графа. 
 
 
 

Пример.
 рис 9.
Пусть   — произвольная вершина графа G. Из    начнем путь L по одному из ребер и продолжим его, проходя каждый раз по новому ребру.
       Все вершины графа имеют четные  степени, поэтому если есть "выход"  из   , то должен быть и "вход" в   , так же как и для любой другой вершины. И если есть "вход" в вершину, то должен быть и "выход". Так как число ребер конечно, этот путь должен окончиться, причем в вершине   .
     На  рисунке путь L и направление его обхода показаны кривыми со стрелками.
     Если  путь L, замкнувшийся в   , проходит через все ребра графа, значит, мы получили искомый эйлеров цикл.
       Если остались непройденные ребра,  то должна существовать вершина   , принадлежащая L и ребру, не вошедшему в L. Так как   — четная, то число ребер, которым принадлежит   и которые не вошли в путь L, тоже четно.
     Начнем  новый путь s из   и используем только ребра, не принадлежащие L. Этот путь кончится в  . На рисунке путь s обозначен прямыми линиями со стрелками.
       Объединим теперь оба цикла:  из   пройдем по пути L к  , затем по циклу s и, вернувшись в  , пройдем по оставшейся части пути обратно в  . Если снова найдутся ребра, которые не вошли в путь, то найдем новые циклы.
     Так как число ребер и вершин конечно, то процесс закончится.
     Итак, приведен алгоритм, позволяющий отыскать эйлеров цикл, и показано, что  он применим во всех случаях, допускаемых  условиями теоремы.
     Таким образом, замкнутую фигуру, в которой  все вершины - четные, можно начертить  одним росчерком без повторений, начиная обводить ее с любой точки. Если граф не обладает эйлеровым циклом, то можно поставить задачу об отыскании  одного эйлерова пути или нескольких эйлеровых путей, содержащих все  ребра графа. 
 
 

3.3.Решение задач о лабиринтах
     Вопрос  о лабиринтах интересовал в свое время многих. В самом деле, возможно ли построить или даже начертить "безвыходный" лабиринт, то есть такой, в котором найти путь к центру и выход было бы только делом случая, а не точного математического  расчета?
     Решение этого вопроса принадлежит сравнительно позднему времени, и начало ему было положено Эйлером. Результаты произведенных в этом отношении изысканий привели исследователей к заключению, что безвыходных лабиринтов не существует. Решение каждого лабиринта может быть найдено, и притом сравнительно простым путем. Способ обходить все ребра графа можно использовать, например, для поиска пути, позволяющего выбраться из лабиринта. Лабиринты, как известно, состоят из коридоров, перекрестков, тупиков (любой участок можно проходить по несколько раз), и маршруты в них могут быть представлены графами, в которых ребра соответствуют коридорам, а вершины—входам, выходам, перекресткам и тупикам.
     Задача  о лабиринте в общем случае сводится к построению алгоритма, позволяющего отыскать маршрут в соответствующем  графе от заданной вершины  до заданной вершины. Вершина может быть входом или внутренней точкой лабиринта, из которой нужно выбраться, вершина — выходом или тоже внутренней точкой, в которую необходимо попасть. Чтобы избежать бесконечного блуждания, необходимо иметь возможность запоминать пройденный путь, например, отмечать ребра графа, по которым уже прошли, и направление пути.
     Если  известно, что у лабиринта все "стенки" связаны друг с другом, то есть нет замкнутых маршрутов, по которым можно возвращаться в  исходную точку, то такой лабиринт всегда можно обойти весь, касаясь стенки одной рукой, например правой. Если же лабиринт содержит замкнутые маршруты, то, касаясь одной рукой стенки, не всегда можно пройти все коридоры и тупики. В схемах, соответствующих  таким лабиринтам, две вершины  могут быть соединены и несколькими  ребрами. Такие схемы называют мультиграфами. Разработаны алгоритмы, позволяющие обойти любой лабиринт, не пользуясь его схемой.
     Одно  из правил обхода любого лабиринта  было предложено французским математиком  Тарри. Это правило о прохождении  по каждому ребру графа дважды, по одному разу в каждом направлении. Согласно этому правилу, при обходе лабиринта следует, попадая в любой перекресток впервые по некоторому пути S, при возвращении в этот перекресток избегать пользоваться путем Sдо тех пор, пока это возможно, и лишь только в том случае идти по пути Sв обратную сторону, когда все остальные пути из будут пройдены дважды.
Приведём геометрическую постановку задачи о лабиринтах.
     Аллеи, дорожки, коридоры, галереи, шахты и  тому подобные лабиринты тянутся, изгибаясь  во все стороны, перекрещиваются, расходятся по всевозможным направлениям, ответвляются, образуют тупики и так далее.
     Лабиринт  — это граф. Все перекрестки  обозначим вершинами, а все аллеи, дорожки, коридоры и т.д. будут ребрами. Если какая-либо точка, движущаяся по ребру  графа, может прийти к любой другой вершине, не покидая ребра, приняв это, докажем, что подобная движущаяся точка (например, человек) может последовательно  описать все ребра без всяких скачков и перерывов и при  этом по каждому ребру она пройдет  ровно два раза. Другими словами, лабиринт всегда может быть разрешен.
Решение:
         Правило 1. Отправляемся от выбранной вершины (первого перекрестка) и идем по любому ребру, пока не приходим или в тупик (к вершине), или к новому перекрестку (вершине).
     Тогда: Если окажется, что мы попали в тупик, возвращаемся назад и пройденное ребро должно быть уже отброшено, так как мы прошли его два раза (туда и обратно). Если приходим к  новому перекрестку, то направляемся по новому произвольному ребру, не забывая всякий раз отмечать путь, по которому прибыли, и путь, по которому отправились дальше. (Как показано на рисунке 10.) 
 
 

 Пример.
 рис 10.
Направление движения показано стрелкой  f. После прихода к пересечению путей выбирается направление, обозначенное стрелкой g. Оба пути помечаются черточкой. (Крестиками обозначаются черточки, поставленные при последнем прохождении через перекресток.)
Следуем указанному выше первому правилу всякий раз, когда приходим на такой перекресток, на котором еще не были. В конце  концов мы должны прийти к перекрестку, на котором уже были, и здесь  может представиться два случая. По какому пути пришли: по дороге, раз  пройденной, или по новому пути.
     Правило 2. Прибыв на известный нам перекресток по новой дороге, мы должны сейчас же повернуть обратно, предварительно отметив этот путь двумя черточками (прибытие и обратное отправление), как показано на рисунке.
 рис 11. 

     Правило 3. Если мы приходим на известный перекресток таким путем, которым уже раз прошли, то, отметив этот путь второй черточкой, отправляемся дальше путем, которым еще не проходили, если только такой путь существует. Этот случай изображен на рисунке.
 рис 12.
     Но  если такого пути нет, то выбирается дорога, по которой мы прошли только один раз. Случай этот показан на рисунке.
 рис 13. 

     Придерживаясь указанных правил, обойдем два  раза все линии сети и придем в  точку отправления. Это можно  доказать, сделав предварительно такие  замечания:
     Выходя  из точки отправления  , ставим начальный знак (поперечную черточку). Прохождение через перекресток по одному из предыдущих трех правил каждый раз добавляет два знака (две поперечные черточки) на линиях, которые сходятся в этой точке.
     В любой  момент прохождения лабиринта, перед  прибытием на какой-либо перекресток  или после отправления из него, начальный перекресток (пункт отправления) имеет нечетное число знаков (черточек), а всякий другой перекресток имеет  их четное число.
     В любой  момент, до или после прохода через  перекресток, начальный перекресток  имеет только один путь, обозначенный только одной черточкой. Любой другой из посещенных уже перекрестков может  иметь только два пути, обозначенных одной черточкой.
     После полного обхода лабиринта у всех перекрестков все пути должны иметь  по две черточки. Это входит в условие задания.
     Приняв  во внимание все вышеизложенное, убеждаемся, что если кто-либо отправляется из начального перекрестка, скажем  , и прибывает в какой-либо иной перекресток  , то он не может встретить таких трудностей задачи, которые могли бы остановить его дальнейшее путешествие.
     В самом  деле, в это место он приходит или новым путем, или путем, который  уже один раз пройден. В первом случае прилагается первое или второе из приведенных выше правил. Во втором случае вход на перекресток ,  и остановка здесь дала бы нечетное число знаков около него, следовательно, за неимением нового пути надо пойти по уже пройденному один раз пути, и около перекрестка будет четное число знаков (если он не начальный) по правилу3.
Пусть, наконец, мы будем  вынуждены закончить путь и вернуться  в начальный перекресток  ,. Обозначим это ребро  ( , ) , то есть оно ведет из перекрестка   в начальный  . Этот путь должен быть тем самым, которым мы отправлялись первый раз из  , иначе путь можно было бы продолжать. И если теперь мы принуждены этим же путем возвратиться в начальную точку (вершину), то это значит, что из перекрестка    нет никакого другого пути, который бы не был уже два раза пройден. Иначе это означало бы, что забыли применить первую часть правила 3, более того, это означало бы, что в    есть какой-то путь ( , ), пройденный только один раз по замечанию 4. Итак, при последнем возвращении в   все пути в   должны быть отмечены двумя черточками. Точно так же это можно доказать для предыдущего перекрестка  , и для всех остальных. Другими словами, предположение доказано, и задача решена. 
 
 

Глава 3. Гамильтоновы графы.
3.1.Гамильтонов путь. Полугамильтонов граф.
     Рассмотрим проблему, связанную с возможным обходом всех вершин в графе: существует ли в данном (связном) графе цикл (или маршрут), обходящий каждую вершину (кроме первой) только один раз.
     Если  такой цикл (маршрут) существует (в  этом случае такой цикл будет контуром, а маршрут путем), то граф называется гамильтоновым, и соответствующий цикл (путь) также называют гамильтоновым циклом (путем). Граф, который содержит простой путь, проходящий через каждую его вершину, называется полугамильтоновым.
     На  рис. 14 изображены гамильтонов, полугамильтонов и не гамильтонов графы.

Рис 14.
Несмотря на сходство постановки задач для гамильтоновых  графов с эйлеровыми, “хорошего” решения  для гамильтоновых графов нет. Вообще, о гамильтоновых графах известно очень мало. В основном – это  теоремы типа “если в графе  достаточное число ребер, то он гамильтонов”. Ясно, что теоремы такого типа не могут дать критерия гамильтонова графа, (рис. 14,а), поскольку в графах такого типа вершин может быть очень много, а ребер сравнительно мало. 
 
 
 
 

3.2. Задача о «Кругосветном путешествии»
       Рассмотрим известную задачу о «кругосветном путешествии».
В 1859 г. сэр Вильям Гамильтон, знаменитый ирландский математик, давший миру теорию комплексных чисел и кватерниона, предложил детскую головоломку, в которой предлагалось совершить «кругосветное путешествие» по 20 городам, расположенным в различных частях земного шара. Каждый город соединялся дорогами с тремя соседними так, что дорожная сеть образовывала 30 ребер додекаэдра, в вершинах которого находились города a, b ... t (рис. 15).
     Обязательным  условием было требование посетить каждый город, за исключением первого, лишь один раз.

Рис. 15.
     Если  путешествие начать из города a, то последними должны быть города b, e или h, иначе мы не сможем вернуться в первоначальный пункт a. Непосредственное исчисление показывает, что число таких замкнутых маршрутов равно 60.
     Можно потребовать посещения всех городов  строго по одному разу, включая и  первый, т.е. допускается окончание  путешествия в любом городе (например, предполагается, что в начальный  пункт можно будет вернуться самолетом). Тогда общее число цепных маршрутов увеличится до 162. В табл.1 перечислены все эти цепи, причем в специально организованной последовательности. Принцип организации цепей для додекаэдра выбран тот же, что и ранее для куба, т.е.принцип инверсии хвостовой последовательности вершин. Однорёберная замена касается 1, 4, 7, 10, 13 или 16 ребра каждой цепи. Таким образом, получается 11 циклов по 15 цепей в каждом и 3 цикла по 14 цепей.
                                  Таблица 1. 
     
     
     
     
     
     
     
     

      Рассматривая табл.1, можно заметить, что ни один из предложенных дорожных маршрутов не заканчивается в пунктах c, d, f, g, i и j. В пункте заканчиваются только 6 маршрутов, в пунктах m, p и — по 8 для каждого пункта, в l, k, n, o, q, r — по 12 и в b, e, h — по 20.
     Это происходит потому, что для додекаэдра существует пять классов вершин и  семь классов ребер, которые в  табл.1 количественно разнесены по 11 циклам.
В столбце S табл.1 указана симметрия цепи, которая для додекаэдра определяется так же, как и для куба. Общее число цепей додекаэдра равно произведению 162 ? 10 = 1620.  

  3.3. Достаточное условие гамильтоновости графа .Теорема     Дирака.
      Как было сказано выше, в отличии от эйлеровых графов, где имеется  критерий для графа быть эйлеровым, для гамильтоновых графов такого критерия нет. Приведём одно из достаточных условий гамильтоновости. 

     Теорема Дирака. Если в графе G(V,E) c n вершинами (n ? 3) выполняется условие deg(v) ? n/2 для любой вершины v V, то граф G является гамильтоновым.
Доказательство. Будем проводить доказательство методом от противного. Пусть G — не гамильтонов граф. Добавим к G минимальное количество новых вершин u1
и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.