Tuple

From Wikipedia, the free encyclopedia

(Redirected from N-tuples)
Jump to: navigation, search
Look up tuple in
Wiktionary, the free dictionary.

In mathematics, a tuple is a finite sequence (also known as an "ordered list") of objects, each of a specified type. A tuple containing n objects is known as an "n-tuple". For example the 4-tuple (or "quadruple"), with components of respective types PERSON, DAY, MONTH and YEAR, could be used to record that a certain person was born on a certain day of a certain month of a certain year.

Tuples are used to describe mathematical objects that consist of specified components. For example, a directed graph is defined as a tuple (V, E) where V is the set of nodes and E is a subset of V × V that denotes the edges. The type of the first object is "set of nodes" and the type of the second is "set of edges".

Contents

The term originated as an abstraction of the sequence: single, double, triple, quadruple, quintuple, n-tuple. A tuple of length n is usually described as an n-tuple. A 2-tuple is called a pair; a 3-tuple is a triple or triplet. The n can be any nonnegative integer. For example, a complex number can be represented as a 2-tuple, and a quaternion can be represented as a 4-tuple. Further constructed names are possible, such as octuple, but many mathematicians find it quicker to write "8-tuple", even if still pronouncing this "octuple".

The main properties that distinguish a tuple from, for example, a set are that

  1. it can contain an object more than once, and
  2. the objects appear in a certain order.

Note that (1) distinguishes it from an ordered set and that (2) distinguishes it from a multiset. This is often formalized by giving the following rule for the identity of two n-tuples:

(a1, a2, …,an) = (b1, b2, …, bn) ↔ a1 = b1, a2 = b2, …, an = bn.

Since a n-tuple is indexed by the numbers 1…n (or 0…n-1), it can be regarded as a function from a subset of :

(a1, a2, …,an) ≡ fa: ℕn → A: iai.

Another way of formalizing tuples is by mapping them to more primitive constructs in set theory such as ordered pairs. For example, an n-tuple (with n > 2) can be defined as an ordered pair of its first entry and an (n−1)-tuple containing the remaining entries:

(a1, a2, …, an) = (a1, (a2, …, an)).

Using the usual set-theoretic definition of an ordered pair and letting the empty set represent the empty tuple, this results in the following inductive definition:

  1. the 0-tuple (i.e. the empty tuple) is represented by
  2. if x is an n-tuple then {{a}, {a, x}} is an (n + 1)-tuple.

Using this definition, (1,2,2) would be

(1,(2,(2,))) = (1,(2, {{2}, {2, }} )) = (1, {{2}, {2, {{2}, {2, }}}} ) = {{1}, {1, {{2}, {2, {{2}, {2, }}}}}}

There is an important similarity here with the way Lisp originally used the ordered pair abstraction to inductively create all of its n-tuple and list structures:

  1. a special symbol NIL represents the empty list;
  2. if X is a list and A an arbitrary value then the pair (A X) represents a list with the head (i.e. first element) A and the tail (i.e. the remainder of the list without the head) X.

In computer science, tuple has three distinct meanings. Typically in functional and some other programming languages, a tuple is a data object that holds several objects, similar to a mathematical tuple. Such an object is also known as a record.

The Eiffel programming language has a built-in notion of tuple. The type

  TUPLE [X, Y, Z]

has, as its values, tuples of three or more elements, of which the first is of type X, the second of type Y and the third of type Z. This can also be written with tags:

  TUPLE [tag1: X, tag2: Y, tag3: Z]

without affecting the resulting type. An actual tuple, corresponding to this type, is written in bracket notation, for example

   [x1, y1, z1]

with x1 of type X etc. If t is such a tuple, its elements can be accessed, in the form using tags, as t.tag1 etc.; they can also be set in the same way, as in t.tag2 := y2 which replaces the second element, of type Y, by y2. A value of type TUPLE [X, Y, Z] can be assigned to a variable of the same type but also to one of type TUPLE [X, Y], or TUPLE [X], or just TUPLE which covers all tuples. This is thanks to the definition that TUPLE [X, Y], for example, covers sequences of at least (rather than exactly) two elements, with the first two of the types given. Tuple types fit well in an object-oriented context, where they save writing a class when all you need is simple sequences of values with associated access and set mechanisms for each field.

With inherent Name/Value pair properties, along with a structured and ordered nature, the term 'tuple' extends readily to use in Information Modeling and Database Definition.

For example, XML-Tuples represent Name/Value tuple structures. The following is an example of an XML-Tuple

   Value

In some languages, and especially in database theory, a tuple is defined as a finite function that maps field names to a certain value. Its purpose is the same as in mathematics, namely to indicate that a certain entity or object consists of certain components and/or has certain properties, but here these components are identified by a unique field name and not by a position, which often leads to a more user-friendly notation. The general term for this construct is an associative array; other programming languages have yet other names for the concept.

A small example of a tuple would be:

( player : "Harry", score : 25 )

which is a function that maps the field name "player" to the string "Harry" and the field name "score" to the number 25. Note that the order of the components is not relevant, so the same tuple can also be written as:

( score : 25, player : "Harry" )

In the relational model such tuples are typically used to represent a single proposition; in this case there exists a player with the name "Harry" and a score of 25.

In programming languages, tuples are used to form data structures. For example, the following could be a structure that represents a node in a doubly linked list:

( value : 16, previous-node : 1174782, next-node : 1174791 )

Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.