Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]


Теория графов: основные понятия и определения

Теория графов: основные понятия и определения


Неформально граф можно рассматривать как множество точек и соединяющих эти точки линий со стрелками или без них.


Первой работой теории графов как математической дисциплины считают статью Эйлера (1736 г.), в которой рассматривалась задача о Кёнингсбергских мостах. Эйлер показал, что нельзя обойти семь городских мостов и вернуться в исходную точку, пройдя по каждому мосту ровно один раз. Следующий импульс теория графов получила спустя почти 100 лет с развитием исследований по электрическим сетям, кристаллографии, органической химии и другим наукам.


С графами, сами того не замечая, мы сталкиваемся постоянно. Например, графом является схема линий метрополитена. Точками на ней представлены станции, а линиями — пути движения поездов. Исследуя свою родословную и возводя ее к далекому предку, мы строим так называемое генеалогическое древо. И это древо — граф.


Графы служат удобным средством описания связей между объектами. Ранее мы уже использовали графы как способ наглядного представления конечных бинарных отношений. Но граф используют отнюдь не только как иллюстрацию. Например, рассматривая граф, изображающий сеть дорог между населенными пунктами, можно определить маршрут проезда от пункта А до пункта Б. Если таких маршрутов окажется несколько, хотелось бы выбрать в определенном смысле оптимальный, например самый короткий или самый безопасный. Для решения задачи выбора требуется проводить определенные вычисления над графами. При решении подобных задач удобно использовать алгебраическую технику, да и само понятие графа необходимо формализовать.


Методы теории графов широко применяются в дискретной математике. Без них невозможно обойтись при анализе и синтезе различных дискретных преобразователей: функциональных блоков компьютеров, комплексов программ и т.д.


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


Графы, как уже отмечалось в примерах, есть способ "визуализации" связей между определенными объектами. Связи эти могут быть "направленными", как, например, в генеалогическом древе, или "ненаправленными" (сеть дорог с двусторонним движением). В соответствии с этим в теории графов выделяют два основных типа графов: ориентированные (или направленные) и неориентированные.


Построение математического определения графа осуществляется путем формализации и "объектов", и "связей" как элементов некоторых (как правило, конечных) множеств.




Неориентированные графы


Неориентированный граф G задается двумя множествами G=(V,E), где V — конечное множество, элементы которого называют вершинами или узлами; E — множество неупорядоченных пар на V, т.е. подмножество множества двухэлементных подмножеств V, элементы которого называют ребрами. Для каждого ребра \{u,v\}\in E считаем, что u и {v} — различные вершины.


Если ребро e=\{u,v\}, то говорят, что ребро e соединяет вершины u и {v}, и обозначают это мы u\mapsto v; если необходимо, указывают имя графа G\colon u\mapsto_{G}v.


Вершины u и {v}, соединенные ребром (u\mapsto v), называют смежными, а также концами ребра \{u,v\}. Если u\mapsto v, говорят, что вершины u и {v} связаны отношением непосредственной достижимости.


Ребро e называют инцидентным вершине {v}, если она является одним из его концов.


Степенью вершины {v} называют число \operatorname{dg}v всех инцидентных ей ребер.


Для вершины {v} множество \Gamma(v)=\{x\colon\,x\mapsto v\} называют множеством смежных с {v} вершин. Справедливо равенство \operatorname{dg}v=|\Gamma(v)|.


Цепь в неориентированном графе G — это последовательность вершин (конечная или бесконечная) v_0,v_1,\ldots,v_n,\ldots, такая, что v_i\mapsto v_{i+1} для любого i, если v_{i+1} существует. (Под конечной последовательностью понимается кортеж вершин.)


Для конечной цепи v_0,v_1,\ldots,v_n число n~(n\geqslant0) называют длиной цепи. Таким образом, длина цепи есть число ее ребер, т.е. всех ребер, соединяющих вершины v_i и v_{i+1}~(i=\overline{0,n-1}). Цепь длины 0 — это произвольная вершина графа.


Говорят, что вершина {v} неориентированного графа G достижима из вершины u этого графа и обозначают и u\shortmid\!= \!\shortmid^{\ast}\!v, если существует цепь v_0,v_1,\ldots,v_n такая, что u=v_0, v_n=v (при этом говорят также, что данная цепь соединяет вершины u и {v}, которые называют концами цепи). Таким образом, задано отношение достижимости \shortmid\!=\!\shortmid^{\ast} в неориентированном графе. Оно является рефлексивно-транзитивным замыканием отношения \shortmid\!\!\!-\!\!\!\shortmid непосредственной достижимости.


Отношение достижимости в неориентированном графе рефлексивно, симметрично и транзитивно, т.е. является отношением эквивалентности


Если существует цепь ненулевой длины, соединяющая u и {v}, то пишут u\shortmid\!= \!\shortmid^{+}\!v. Если необходимо явно указать длину цепи, то пишут u \shortmid\!=\!\shortmid^{n}\!v и говорят, что существует цепь длины n, соединяющая u и {v}.


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



Ориентированные графы


Ориентированный граф G задается двумя множествами G=(V,E), где V — конечное множество, элементы которого называют вершинами или узлами; E — множество упорядоченных пар на V, т.е. подмножество множества V\times V, элементы которого называют дугами.


Если дуга e=(u,v), то говорят, что дуга e ведет из вершины u в вершину {v}, и обозначают это u\to v; если необходимо, указывают имя графа G\colon u\to_{G}v.


Вершины u и {v}, такие, что из вершины u в вершину {v} ведет дуга (u\to v), называют сиежнылси, причем м называют началом, а v — концом дуги (u,v). Дугу, начало и конец которой есть одна и та же вершина, называют петлей. Если u\to v, то говорят, что вершины и и v связаны отношением непосредственной достижимости.


Дугу (u,v) называют заходящей в вершину {v} и исходящей из вершины u. Дугу называют инцидентной вершине {v}, если она заходит в {v} или исходит из {v}.


Полустепенью захода вершины {v} называют число \operatorname{dg}^{-}(v) заходящих в нее дуг, а полустепенью исхода вершины {v} — число \operatorname{dg}^{+}(v) исходящих из нее дуг. Степень вершины {v}, обозначаемая \operatorname{dg}(v), — это сумма полустепеней захода и исхода.


Для вершины {v} множество \Gamma(v)=\{x\colon\, v\to x\} называют множеством преемников вершины {v}, а множество \Gamma^{-1}(v)= \{x\colon\, x\to v\} — множеством предшественников вершины {v}. Справедливы равенства


\operatorname{dg}^{+}(v)= |\Gamma(v)|,\qquad \operatorname{dg}^{-}(v)= |\Gamma^{-1}(v)|.

Путь в ориентированном графе G — это последовательность вершин (конечная или бесконечная) v_0,v_1,\ldots,v_n,\ldots, такая, что v_i\to v_{i+1} для любого i, если v_{i+1} существует.


Для конечного пути v_0,v_1,\ldots,v_n число n называют длиной пути (n\geqslant0). Тем самым длина пути есть число его дуг, т.е. всех дуг, которые ведут из вершины v_i в вершину v_{i+1}~(i=\overline{0,n-1}). Путь длины 0 — это произвольная вершина графа.


Говорят, что вершина {v} ориентированного графа G достижима из вершины u этого графа и обозначают u\Rightarrow^{\ast}v, если существует путь v_0,v_1,\ldots,v_n. такой, что u=v_0,~v=v_n (при этом говорят, что данный путь ведет из вершины u в вершину {v}, называя первую вершину началом, а вторую — концом данного пути). Таким образом, задано отношение достижимости \Rightarrow^{\ast} в ориентированном графе. Оно является рефлексивно-транзитивным замыканием отношения \to непосредственной достижимости.


Отношение достижимости в ориентированном графе рефлексивно и транзитивно, но в общем случае не антисимметрично: если две вершины ориентированного графа достижимы одна из другой, то из этого вовсе не следует, что они совпадают. Таким образом, отношение достижимости в ориентированном графе есть отношение предпорядка.


Если существует путь ненулевой длины, ведущий из u в {v}, то пишут u\Rightarrow^{+}v. Если необходимо явно указать длину пути, то пишут u\Rightarrow^{n}v и говорят, что существует путь длины n, ведущий из u в {v}.


Простой путь — это путь, все вершины которого, кроме, быть может, первой и последней, попарно различны.
Простой путь ненулевой длины, начало и конец которого совпадают, называют контуром.
Произвольный путь ненулевой 1 длины, начало и конец которого совпадают, будем называть замкнутым путем.
Ориентированный граф, не содержащий контуров, называют бесконтурным графом.



Пример замкнутой цепи в неориентированном графе

Замечание 5.1. Требование, чтобы все ребра простой цепи неориентированного графа были попарно различными, существенно. Если его снять, то цепь вида u,v,u, где u\mapsto v, будет циклом, в котором одно и то же ребро \{u,v\} проходится дважды в противоположных направлениях, хотя такую цепь естественно циклом не считать. Не будет эта цепь в соответствии с принятой терминологией и замкнутой цепью.


В неориентированном графе на рис. 5.1 цепь a \shortmid\!\!\!-\!\!\!\shortmid b \shortmid\!\!\!-\!\!\!\shortmid \! c \shortmid\!\!\!-\!\!\!\shortmid d \shortmid\!\!\!-\!\!\!\shortmid e \shortmid\!\!\!-\!\!\!\shortmid c \shortmid\!\!\!-\!\!\!\shortmid a является примером замкнутой цепи.


Замечание 5.2. В общем случае в ориентированном графе пересечение множества преемников \Gamma(v) вершины {v} и множества \Gamma^{-1}(v) ее предшественников будет не пусто, если есть петля (v,v)\colon\, \Gamma(v)\cap \Gamma^{-1}(v)\ne \varnothing.


Пример 5.1. Рассмотрим неориентированный граф, изображенный на рис. 5.2. Он задается множеством вершин


Неориентированный граф, в котором последовательность вершин есть простая цепь
V=\{v_1,v_2,v_3,v_4,v_5,v_6,v_7\}

и множеством неупорядоченных пар E=\bigl\{\{v_1,v_2\}, \{v_1,v_3\}, \{v_2,v_3\}, \{v_3,v_4\}, \{v_5,v_6\}\bigr\}.


В этом графе последовательность вершин v_1,v_3,v_4 есть простая цепь, а последовательность v_1,v_3,v_2,v_1,v_3,v_4 — цепь, не являющаяся простои, поскольку в ней есть совпадающие ребра. Последовательность вершин v_3,v_1,v_2,v_4 не является цепью, поскольку в графе нет ребра \{v_2,v_4\}. Последовательность v_1,v_3,v_2,v_1 есть цикл, а последовательность v_4,v_3,v_1,v_2,v_3,v_4 — цепь с совпадающими концами, но не цикл, поскольку эта цепь не является простой. Эта цепь не будет и замкнутой, так как в ней есть повторяющееся ребро \{v_3,v_4\}.


Степени вершин графа следующие:


\operatorname{dg}v_1= \operatorname{dg}v_2=2,\quad \operatorname{dg}v_3=3,\quad \operatorname{dg}v_4= \operatorname{dg}v_5= \operatorname{dg}v_6=1,\quad \operatorname{dg}v_7=0.

Вершины v_1,v_2,v_3,v_4 попарно достижимы (v_i \shortmid\!=\!\shortmid^{\ast}\! v_j,~ i,j\in\{1,2,3,4\}) и образуют класс эквивалентности по отношению достижимости. Для вершин v_5 и v_6 имеет место v_5 \shortmid\!=\!\shortmid^{\ast}\! v_6, и они также образуют класс эквивалентности. Заметим, что вершина V7, по определению, образует цепь длины 0 и эквивалентна по отношению достижимости только самой себе.


Пример 5.2. Обратимся к ориентированному графу, изображенному на рис. 5.3. Он задается множеством вершин V=\{v_1,v_2,v_3,v_4,v_5,v_6\} и множеством дуг


E= \bigl\{(v_1,v_2), (v_1,v_3), (v_2,v_1), (v_2,v_3), (v_2,v_4), (v_3,v_1), (v_3,v_4), (v_5,v_6), (v_6,v_4)\bigr\}.

Ориентированный граф, в котором последовательность вершин есть простой путь

В этом ориентированном графе последовательность вершин v_1,v_2,v_3,v_4 есть простой путь, а последовательность вершин v_1,v_2,v_3,v_1,v_3,v_4 — путь, не являющийся простым, поскольку в нем, например, два раза встречается вершина, не служащая началом и концом пути.


Последовательность вершин v_3,v_1,v_2,v_3 есть контур, а последовательность v_3,v_1,v_2,v_1,v_3 — замкнутый путь, но не контур, поскольку вершина v_1, не являющаяся началом пути, встречается два раза. Последовательность вершин v_1,v_3,v_4,v_6 не задает путь, так как в рассматриваемом ориентированном графе нет дуги (v_4,v_6).


Полустепени захода, полустепени исхода и степени у вершин следующие:


\begin{array}{lll}\operatorname{dg}^{-}(v_1) = 2,&\qquad \operatorname{dg}^{+}(v_1)= 2,&\qquad \operatorname{dg}(v_1)=4;\\[4pt] \operatorname{dg}^{-}(v_2) =1,&\qquad \operatorname{dg}^{+}(v_2)=3,&\qquad \operatorname{dg}(v_2)=4;\\[4pt] \operatorname{dg}^{-}(v_3)=2,&\qquad \operatorname{dg}^{+}(v_3)=2,&\qquad \operatorname{dg}(v_3)=4;\\[4pt] \operatorname{dg}^{-}(v_4) =3,&\qquad \operatorname{dg}^{+}(v_4)=0,&\qquad \operatorname{dg} (v_4)=3;\\[4pt] \operatorname{dg}^{-}(v_5) =0,&\qquad \operatorname{dg}^{+} (v_5)=1,&\qquad \operatorname{dg}(v_5)=1;\\[4pt] \operatorname{dg}^{-}(v_6) =1,&\qquad \operatorname{dg}^{+} (v_6)=1,&\qquad \operatorname{dg}(v_6)=2. \end{array}



Свойства отношения достижимости в графах


Отношение достижимости в неориентированных и ориентированных графах обладает следующим важным свойством.


Теорема 5.1. Для любой цепи, соединяющей две вершины неориентированного графа, существует простая цепь, соединяющая те же вершины. Для любого пути, ведущего из вершины u в вершину {v} ориентированного графа, существует простой путь, ведущий из u в {v}.


Проведем доказательство для неориентированного графа (для ориентированного графа доказательство проводится аналогично).


Цепи неориентированных графов

Пусть вершины u и {v} неориентированного графа таковы, что u \shortmid\!=\!\shortmid^{\ast}\!v. Если эти вершины являются концами цепи нулевой длины, то утверждение теоремы тривиально. Пусть u \shortmid\!=\!\shortmid^{+}\!v, т.е. существует цепь ненулевой длины, соединяющая u в {v}. Рассмотрим какую-либо из таких цепей (рис. 5.4). Обозначим ее C. Если цепь C простая, то доказывать нечего. Пусть существует внутренняя (не совпадающая ни с одним из концов) вершина w цепи C, которая повторяется в этой цепи, т.е. u \shortmid\!=\!\shortmid^{\ast}\! w \shortmid\!=\!\shortmid^{+}\!w \shortmid\!=\!\shortmid^{\ast}\!v. Это значит, что вершина w содержится в некоторой цепи C' ненулевой длины (подцепи цепи C) с совпадающими концами (рис. 5.5). Удалим все вершины и ребра цепи C', кроме вершины w (служащей ее началом и концом одновременно). После этого получим новую цепь C_1, соединяющую вершины u и {v} (рис. 5.6), в которой число повторений вершины w будет по крайней мере на единицу меньше, чем в цепи C. Если цепь C_1 простая, то утверждение доказано. В противном случае поступаем с ней так же, как и с цепью C. В силу конечности множества вершин и ребер графа после конечного числа шагов получим простую цепь, соединяющую вершины u и {v}.


Следствие 5.1. Если вершина неориентированного графа содержится в некоторой замкнутой цепи, то она содержится и в некотором цикле. Если вершина ориентированного графа содержится в некотором замкнутом пути, то она содержится и в некотором контуре.


Замечание 5.3. Следствие 5.1 перестает быть верным для произвольной цепи с совпадающими концами. Например, для неориентированного графа, состоящего из двух вершин v_1,v_2 и единственного ребра (v_1,v_2) цепь v_1,v_2,v_1 с совпадающими концами не содержит цикла.




Подграфы неориентированных и ориентированных графов


Перейдем теперь к понятию подграфа. Формулируется это понятие одновременно для неориентированных и ориентированных графов (с учетом различий в терминологии).


Определение 5.1. Неориентированный (ориентированный) граф G_1= (V_1,E_1) называют подграфом неориентированного (ориентированного) графа G= (V,E), если V_1\subseteq V и E_1\subseteq E.


Будем использовать обозначение G_1\subseteq G, аналогичное обозначению включения для множеств.


Замечание 5.4. Так как в определении 5.1 пара G_1= (V_1,E_1) есть неориентированный (ориентированный) граф, то для любого ребра \{u,v\}\in E_1 (дуги (u,v)\in E_1) предполагается, конечно, что u,v\in V_1, поскольку иначе пару (V_1,E_1) нельзя будет считать неориентированным (ориентированным) графом.


Если хотя бы одно из указанных двух включений в определении 5.1 строгое, то G_1 называют собственным подграфом графа G; если V_1=V, то G_1 называют остовным подграфом графа G.


Подграф G_1 неориентированного (ориентированного) графа G называют подграфом, порожденным множеством вершин V_1\subseteq V, если каждое ребро (дуга) тогда и только тогда принадлежит E_1\subseteq E, когда его (ее) концы принадлежат V_1. Часто в случае, если множество вершин V_1 подразумевается, говорят просто о порожденном подграфе.


Отметим, что подграф графа G, порожденный множеством вершин V_1, в отличие от произвольного подграфа графа G с множеством вершин V_1, должен включать все ребра (дуги), концы которых принадлежат множеству V_1.


Подграф G_1\subseteq G называют максимальным подграфом, обладающим данным свойством P, если он не является собственным подграфом никакого другого подграфа графа G, обладающего свойством P.


Например, на рис. 5.7 подграфы G_1,\,G_2,\,G_3 являются максимальными ациклическими подграфами графа G. Отметим, что они также являются собственными и остовными подграфами указанного графа.


Максимальные ациклические подграфы графа



Связность и компонента связности графов


Следующее важное понятие снова введем параллельно для рассматриваемых двух видов графов.


Неориентированный граф называют связным, если любые две его вершины u и {v} соединены цепью (u \shortmid\!=\!\shortmid^{\ast}\!v).


Компонента связности (или просто компонента) неориентированного графа — это его максимальный связный подграф.


Ориентированный граф называют связным, если для любых двух его вершин u,v вершина {v} достижима из вершины u или вершина u достижима из вершины {v} (u \Rightarrow^{\ast}v или v\Rightarrow^{\ast}u).


Компонента связности (или просто компонента) ориентированного графа — это максимальный связный подграф.


В неориентированном графе две вершины, соединенные цепью, связаны отношением достижимости, которое является эквивалентностью. Поэтому компонента такого графа — это подграф, порожденный некоторым классом эквивалентности вершин по отношению достижимости.


Поскольку каждая компонента неориентированного графа порождается некоторым классом эквивалентности вершин, то две различные компоненты не пересекаются, т.е. не имеют ни общих вершин, ни общих ребер.


Так как отношение достижимости в ориентированном графе не является эквивалентностью, то компоненты ориентированного графа могут пересекаться.


Связный ориентированный граф

Пример 5.3. Граф, изображенный на рис. 5.2, не является связным. Он состоит из трех компонент. Эти компоненты порождены тремя классами эквивалентности по отношению достижимости, указанными в примере 5.1.


Связными являются все графы, изображенные на рис. 5.7.


Ориентированный граф на рис. 5.8 связный, а ориентированные графы на рис. 5.3 и 5.9 не являются связными. В ориентированном графе на рис. 5.3 вершины v_2 и v_5 не достижимы одна из другой, а в ориентированном графе на рис. 5.9 взаимно не достижимы, например, вершины v_2 и v_6. В ориентированном графе, изображенном на рис. 5.9, имеются две компоненты связности: C_1 и C_2, которые пересекаются.


Ориентированный граф с взаимно не достижимыми вершинами



Сильная и слабая связности графов


Для ориентированного графа можно определить также понятия сильной и слабой связности.


Определение 5.2. Ориентированный граф называют сильно связным, если для любых двух его вершин u и {v} вершина {v} достижима из вершины u и вершина u достижима из вершины {v} (u\Rightarrow^{\ast}v и v\Rightarrow^{\ast}u). Бикомпонента ориентированного графа — это его максимальный сильно связный подграф.


Если u\Rightarrow^{\ast}v и v\Rightarrow^{\ast}u, то говорят, что u и {v} связаны отношением взаимной достижимости. Это бинарное отношение рефлексивно, симметрично и транзитивно, т.е. является отношением эквивалентности. Следовательно, две различные бикомпоненты не пересекаются, т.е. не имеют ни общих вершин, ни общих ребер.


Пример 5.4. а. В ориентированном графе, изображенном на рис. 5.3, бикомпонентой является подграф G_1, порожденный множеством вершин \{v_1,v_2,v_3\}. Действительно, эти вершины взаимно достижимы, поэтому ориентированный граф G_1 сильно связный. Так как из вершин v_4,v_5,v_6 ни одна из вершин v_1,v_2,v_3 не достижима, то выделенный сильно связный подграф G_1 является максимальным.


б. В ориентированном графе, представленном на рис. 5.9, имеются четыре бикомпоненты B_1,\,B_2,\,B_3 и B_4. Это подграфы, порожденные соответственно множествами вершин \{v_1\},\, \{v_2,v_3\},\, \{v_4,v_5\} и \{v_6,v_7\}. Отметим, что подграф, порожденный множеством \{v_1\}, не содержит ни одной дуги. Тем не менее этот подграф — бикомпонента, поскольку каждая вершина достижима сама из себя (по пути длины 0).


Определение 5.3. Неориентированный граф G_1=(V_1,E_1) называют ассоциированным с ориентированном графом G=(V,E), если его множество вершин совпадает с множеством вершин ориентированного графа G, а пара \{u,v\} образует ребро тогда и только тогда, когда u\ne v и из u в {v} или из {v} в u ведет дуга, т.е. V_1=V и


E_1=\bigl\{\{u,v\}\colon\, (u,v)\in E\,\lor\, (v,u)\in E,~ u\ne v\bigr\}..

Таким образом, переход от ориентированного графа к ассоциированному с ним неориентированному графу состоит в "стирании" ориентации дуг ориентированного графа с учетом того, что все петли исчезают, а дуги (u,v) и (v,u) при u\ne v переходят в одно и то же ребро \{u,v\}.


Для ориентированного графа, изображенного на рис. 5.10, а, ассоциированный с ним неориентированный граф приведен на рис. 5.10, б. Отметим, что дуги (v_1,v_2) и (v_2,v_1) переходят в ребро \{v_1,v_2\}, а петля (v_6,v_6) исчезает.


Ориентированный граф и ассоциированный с ним неориентированный граф

Определение 5.4. Ориентированный граф называют слабо связным, если ассоциированный с ним неориентированный граф связный. Компонентой слабой связности (слабой компонентой) ориентированного графа называют его максимальный слабо связный подграф.


Ориентированные графы, представленные на рис. 5.3, 5.9 и 5.8, являются слабо связными. Ориентированный граф, изображенный на рис. 5.10, не является слабо связным, поскольку не является связным ассоциированный с ним неориентированный граф. Ориентированный граф на рис. 5.10,а имеет две компоненты слабой связности. Соответственно ассоциированный с ним неориентированный граф на рис. 5.10,б имеет две компоненты связности.

Математический форум (помощь с решением задач, обсуждение вопросов по математике).
Кнопка "Поделиться"
Если заметили ошибку, опечатку или есть предложения, напишите в комментариях.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Яндекс.Метрика

Copyright © 2010-2023 MathHelpPlanet.com. All rights reserved