Interested Article - Кортеж (информатика)

Кортеж — упорядоченный набор фиксированной длины.

В математике

Пусть даны множества , не обязательно различные.

Тогда корте́ж длины n , упорядоченный набор длины n , упорядоченный n -набор или n -ка — упорядоченная последовательность из n элементов где для Кортеж обозначается перечислением координат в угловых или круглых скобках :

или

Элемент называется i координатой ( проекцией , компонентой ) кортежа

Число n называют длиной или размерностью кортежа .

Два кортежа равны, если равны их длины и соответствующие элементы :

если

Пример кортежа — арифметический вектор .

Декартово произведение n множеств — множество всех кортежей длины n , координаты которых взяты из этих множеств :

Кортежи длины 2, 3, 4, 5, … также носят названия « упорядоченная пара », «упорядоченная тройка», «упорядоченная четвёрка», «упорядоченная пятёрка» и т. д.

Определения в теории множеств

В рамках теории множеств кортежи можно индуктивно поставить в соответствие множествам , например, следующим образом :

Определение других объектов через кортежи

Многие математические объекты формально определяются как кортежи. Например, ориентированный граф определяется как пара где V — это множество вершин, а E — подмножество пар в соответствующих дугам графа . Точка в n -мерном пространстве действительных чисел определяется как кортеж длины n , составленный из элементов множества действительных чисел.

Ориентированный мультиграф со множеством вершин V , множеством дуг E и отношением инцидентности может быть определён как упорядоченная тройка причём тогда и только тогда , когда дуга e выходит из вершины a и заходит в вершину b .

В программировании

В некоторых языках программирования , например, Python или ML , кортеж как тип данных встроен в язык. Пример использования кортежа в языке Python:

a = (1, 3.14, 'cat')
print(a[0]) # Напечатать первый элемент кортежа

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

fn div_with_remainder(a: i32, b: i32) -> (i32, i32, String) {
    let tmp = (a/b, a%b);
    (tmp.0, tmp.1, format!("{} + {}", tmp.0, tmp.1))
}

let (res, rem, repr) = div_with_remainder(5,2);

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

В языке C++ поддержка кортежей реализована как шаблон класса std::tuple (начиная с C++11 ) и в библиотеке Boost Tuple Library .

Кортеж является стандартным типом в платформе .NET начиная с версии 4.0 .

В базах данных

В реляционных базах данных кортеж — это элемент отношения . Для N -арного отношения кортеж представляет собой упорядоченный набор из N значений, по одному значению для каждого атрибута отношения, то есть запись (строку) таблицы, если использовать наиболее популярное представление (графическую/физическую интерпретацию) отношения как таблицы.

Примечания

  1. , с. 15.
  2. , с. 39.
  3. .
  4. , с. 75.
  5. , с. 39-40.
  6. , с. 1206.
  7. , p. 17-18.
  8. , с. 1206-1207.
  9. , с. 1213.
  10. , с. 109.
  11. . C++ Reference. Дата обращения: 11 октября 2013. 14 октября 2013 года.
  12. . cppreference.com . Дата обращения: 12 октября 2013. 15 октября 2013 года.
  13. . Boost C++ Libraries. Дата обращения: 12 октября 2013. 14 октября 2013 года.
  14. . MSDN . Дата обращения: 7 марта 2011. 24 сентября 2010 года.

Литература

  • Судоплатов С. В., Овчинникова Е. В. Элементы дискретной математики: Учебник. — М. : ИНФРА-М, Новосибирск: Издательство НГТУ, 2002. — 280 с. — (Серия «Высшее образование»). ISBN 5-16-000957-4 (ИНФРА-М), ISBN 5-7782-0332-2 (НГТУ)
  • Белоусов А. И., Ткачев С. Б. Дискретная математика: Учебник для вузов / Под редакцией В. С. Зарубина, А. П. Крищенко. — 3-е издание, стереотипное. — М. : Издательство МГТУ им. Н. Э. Баумана, 2004. — 744 с. — ISBN 5-7038-1769-2 .
  • Кормен, Томас Х., Лейзерсон, Чарльз И., Ривест, Рональд Л., Штайн, Клиффорд. Алгоритмы: построение и анализ = Introduction to Algorithms. — 2-е издание. — М. : Издательский дом «Вильямс», 2005. — 1296 с. — ISBN 5-8459-0857-4 .
  • Н. Я. Виленкин. Популярная комбинаторика. — М. : Наука, 1975.
  • Англо-русский словарь математических терминов / Под ред. П. С. Александрова. — 2-е, исправл. и дополн. изд.. — М. : Мир, 1994. — 416 с. — ISBN 5-03-002952-4 .
  • Karel Hrbacek, Thomas Jech. Introduction to Set Theory. — Third edition, revised and expanded. — 1999. — ISBN 0-8247-7915-0 .

Ссылки

Источник —

Same as Кортеж (информатика)