Конкатенация: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м робот добавил: gl:Concatenación
м викификация, оформление
Строка 1: Строка 1:
'''Конкатена́ция''' (сцепле́ние) - операция склеивания объектов линейной структуры, обычно, строк. Например, конкатенация слов "паро" и "воз" даст слово "паровоз".
'''Конкатена́ция''' (сцепле́ние) — операция склеивания объектов линейной структуры, обычно, строк. Например, конкатенация слов «паро» и «воз» даст слово «паровоз».


== В математике ==
== В математике ==
'''Конкатенация''' — [[бинарная операция]], определенная на [[слово#В математике|словах]] данного [[алфавит#В математике|алфавита]]. Если <math>\alpha=a_1 \ldots a_n\,</math> и <math>\beta=b_1\ldots b_m\,</math> слова в алфавите <math>A\,</math>, то конкатенацией слов <math> \alpha\, </math> и <math> \beta\, </math>, обозначемой <math> \alpha \cdot \beta\, </math>, будет слово <math> \gamma\, </math> в том же алфавите <math> A\, </math>, определяемое равенством

'''Конкатенация''' - [[бинарная операция]], определенная на [[слово#В математике|словах]] данного [[алфавит#В математике|алфавита]]. Если <math>\alpha=a_1 \ldots a_n\,</math> и <math>\beta=b_1\ldots b_m\,</math> слова в алфавите <math>A\,</math>, то конкатенацией слов <math> \alpha\, </math> и <math> \beta\, </math>, обозначемой <math> \alpha \cdot \beta\, </math>, будет слово <math> \gamma\, </math> в том же алфавите <math> A\, </math>, определяемое равенством


<center>
<center>
Строка 10: Строка 9:
</math>.
</math>.
</center>
</center>

Например, если <math> \alpha = media \,</math> и <math> \beta = wiki \,</math> слова в алфавите <math> A = \{a,b,c,\ldots,z\} \,</math>, содержащем все [[буква|буквы]] [[Латинский алфавит|Латинского алфавита]], то
Например, если <math> \alpha = media \,</math> и <math> \beta = wiki \,</math> слова в алфавите <math> A = \{a,b,c,\ldots,z\} \,</math>, содержащем все [[буква|буквы]] [[Латинский алфавит|Латинского алфавита]], то


<center>
<center>
Строка 20: Строка 19:


=== Свойства конкатенации ===
=== Свойства конкатенации ===
* Операция конкатенации [[Ассоциативная операция|ассоциативна]].

* Операция конкатенации [[Коммутативная операция|некоммутативна]]. В самом деле, <math> wiki \cdot media = wikimedia\, </math>, но <math> media \cdot wiki = mediawiki\, </math>. От перестановки операндов меняется результат операции, что и означает ее некоммутативность.
* Операция конкатенации [[Бинарная операция#Типы бинарных операций|ассоциативна]].
* Пустое слово, <math> \varepsilon\, </math>, является [[нейтральный элемент|нейтральным элементом]] (единицей) операции конкатенации. То есть, если <math> \varepsilon\, </math> — пустое слово, то для любого слова <math> \alpha\, </math> выполнено равенство:

* Операция конкатенации [[Бинарная операция#Типы бинарных операций|некоммутативна]]. В самом деле, <math> wiki \cdot media = wikimedia\, </math>, но <math> media \cdot wiki = mediawiki\, </math>. От перестановки операндов меняется результат операции, что и означает ее некоммутативность.

* Пустое слово, <math> \varepsilon\, </math>, является [[нейтральный элемент|нейтральным элементом]] (единицей) операции конкатенации. То есть, если <math> \varepsilon\, </math> - пустое слово, то для любого слова <math> \alpha\, </math> выполнено равенство:


<center>
<center>
Строка 33: Строка 29:


* Множество <math>A^*\,</math> всех слов в алфавите образует [[моноид]] (так называемая «[[свободная полугруппа]]»).
* Множество <math>A^*\,</math> всех слов в алфавите образует [[моноид]] (так называемая «[[свободная полугруппа]]»).

* Множество <math>A^*\setminus \{\varepsilon\}\,</math> всех непустых слов в алфавите образует [[полугруппа|полугруппу]].
* Множество <math>A^*\setminus \{\varepsilon\}\,</math> всех непустых слов в алфавите образует [[полугруппа|полугруппу]].
* [[Слово#В математике|Длина]] конкатенации слов равна сумме длин операндов:

* [[Слово#В математике|Длина]] конкатенации слов равна сумме длин операндов:


<center>
<center>
Строка 45: Строка 39:


=== Возведение в степень ===
=== Возведение в степень ===

Операция конкатенации слов, подобно операции [[Умножение|умножения чисел]], порождает операцию '''возведения в степень'''. Пусть <math> \alpha\, </math> некоторое слово в алфавите <math> A\, </math>, а <math> n\, </math> [[Целые числа|целое]] неотрицательное число. Тогда <math>n\,</math>-ой степенью слова <math>\alpha\,</math>, обозначаемой <math>\alpha^n\,</math>, будет слово <math>\gamma\,</math> в том же алфавите <math>A\,</math>, определяемое равенством:
Операция конкатенации слов, подобно операции [[Умножение|умножения чисел]], порождает операцию '''возведения в степень'''. Пусть <math> \alpha\, </math> некоторое слово в алфавите <math> A\, </math>, а <math> n\, </math> [[Целые числа|целое]] неотрицательное число. Тогда <math>n\,</math>-ой степенью слова <math>\alpha\,</math>, обозначаемой <math>\alpha^n\,</math>, будет слово <math>\gamma\,</math> в том же алфавите <math>A\,</math>, определяемое равенством:


Строка 60: Строка 53:


== В информатике ==
== В информатике ==

Операция '''конкатенации''' определяется для типов данных, имеющих структуру последовательности ([[Линейный список|список]], [[Очередь (компьютер)|очередь]], [[Массив|массив]] и ряд других). В общем случае, результатом конкатенации двух объектов <math>A\,</math> и <math>B\,</math> является объект <math>C = A\cdot B\,</math>, полученный поочередным добавлением всех элементов объекта <math>B\,</math>, начиная с первого, в конец объекта <math>A\,</math>.
Операция '''конкатенации''' определяется для типов данных, имеющих структуру последовательности ([[Линейный список|список]], [[Очередь (компьютер)|очередь]], [[Массив|массив]] и ряд других). В общем случае, результатом конкатенации двух объектов <math>A\,</math> и <math>B\,</math> является объект <math>C = A\cdot B\,</math>, полученный поочередным добавлением всех элементов объекта <math>B\,</math>, начиная с первого, в конец объекта <math>A\,</math>.


Строка 69: Строка 61:
{{compu-stub}}
{{compu-stub}}
{{math-stub}}
{{math-stub}}
{{викифицировать}}


[[bg:Конкатенация]]
[[bg:Конкатенация]]

Версия от 00:31, 21 мая 2007

Конкатена́ция (сцепле́ние) — операция склеивания объектов линейной структуры, обычно, строк. Например, конкатенация слов «паро» и «воз» даст слово «паровоз».

В математике

Конкатенация — бинарная операция, определенная на словах данного алфавита. Если и слова в алфавите , то конкатенацией слов и , обозначемой , будет слово в том же алфавите , определяемое равенством

.

Например, если и слова в алфавите , содержащем все буквы Латинского алфавита, то

.

Свойства конкатенации

  • Операция конкатенации ассоциативна.
  • Операция конкатенации некоммутативна. В самом деле, , но . От перестановки операндов меняется результат операции, что и означает ее некоммутативность.
  • Пустое слово, , является нейтральным элементом (единицей) операции конкатенации. То есть, если  — пустое слово, то для любого слова выполнено равенство:

.

  • Множество всех слов в алфавите образует моноид (так называемая «свободная полугруппа»).
  • Множество всех непустых слов в алфавите образует полугруппу.
  • Длина конкатенации слов равна сумме длин операндов:

.

Возведение в степень

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

В случае , степень по определению полагается равной пустому слову, .

В информатике

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

Из соображений удобства и эффективности различают две формы операции конкатенации:

  1. Модифицирующая конкатенация. Результат операции формируется в левом операнде.
  2. Немодифицирующая конкатенация. Результатом является новый объект, операнды остаются неизменными.