Tuple (datavetenskap)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 17 april 2022; verifiering kräver 1 redigering .

En tuppel  är en beställd uppsättning av fast längd.

I matematik

Låt set vara givna , inte nödvändigtvis distinkta.

Då är en tuppel av längden n [1] [2] , en ordnad uppsättning av längden n [1] , en ordnad n -tuppel [2] eller en n - tuppel [1] [3]  en ordnad sekvens av n element där för en tupel betecknas genom att räkna upp koordinater inom vinkel eller parentes [1] :

eller

Elementet kallas den i :te koordinaten [1] [4] ( projektion [2] , komponent [2] [4] ) av tupeln

Talet n kallas tuppelns längd eller dimension [2] .

Två tuplar är lika om deras längder och motsvarande element är lika [2] [4] :

om

Ett exempel på en tuppel är en aritmetisk vektor [2] .

Den kartesiska produkten av n mängder är mängden av alla tupler med längden n vars koordinater är hämtade från dessa mängder [1] [5] [6] :

Tuplar av längden 2, 3, 4, 5, ... kallas också " beställt par ", "beställt tre", "beställt fyra", "beställt fem", etc. [2]

Definitioner i mängdteori

Inom mängdteorin kan tupler induktivt mappas till mängder [1] [7] [8] , till exempel enligt följande [1] [7] :

Definiera andra objekt via tupler

Många matematiska objekt definieras formellt som tupler. Till exempel definieras en riktad graf som ett par där V är uppsättningen av hörn och E är delmängden av par i motsvarande bågar av grafen [9] . En punkt i det n -dimensionella rummet av reella tal definieras som en tupel med längden n , sammansatt av elementen i uppsättningen av reella tal.

En orienterad multigraf med en uppsättning av hörn V , en uppsättning av bågar E och en incidensrelation kan definieras som en ordnad trippel om och endast om bågen e lämnar vertex a och går in i vertex b [10] .

I programmering

I vissa programmeringsspråk , som Python eller ML , är tupeln som datatyp inbyggd i språket. Ett exempel på att använda en tupel i Python:

a = ( 1 , 3.14 , 'katt' ) print ( a [ 0 ]) # Skriv ut det första elementet i tuppeln

I programmeringsspråk med statisk typning skiljer sig en tuppel från en lista genom att elementen i tupeln kan tillhöra olika typer , och uppsättningen av sådana typer är förutbestämd av typen av tuppel, vilket innebär att storleken på tupel bestäms också. Å andra sidan har samlingar (listor, arrayer) en gräns för typen av lagrade element, men ingen gräns för längden. Så, till exempel, i Rust- språket, kan en funktion returnera flera värden med hjälp av tupelinpackning:

fn div_with_remainder ( a : i32 , b : i32 ) -> ( i32 , i32 , String ) { låt tmp = ( a / b , a % b ); ( tmp . 0 , tmp . 1 , format! ( "{} + {}" , tmp . 0 , tmp . 1 )) } let ( res , rem , repr ) = div_with_remainder ( 5 , 2 );

I funktionella språk tar funktioner med flera argument parametrar som ett enda argument, vilket är en tupel.

I C++ implementeras stöd för tuple som en klassmall std::tuple [11] (sedan C++11 [12] ) och i Boost Tuple Library [13] .

Tuplen har varit en standardtyp i .NET -plattformen sedan version 4.0 [14] .

I databaser

I relationsdatabaser är en tupel en del av en relation . För en N -är relation är en tupel en ordnad uppsättning av N värden, ett värde för varje relationsattribut.

Anteckningar

  1. 1 2 3 4 5 6 7 8 Sudoplatov, Ovchinnikova, 2002 , sid. femton.
  2. 1 2 3 4 5 6 7 8 Belousov och Tkachev, 2004 , sid. 39.
  3. Engelsk-Rysk ordbok för matematiska termer, 1994 .
  4. 1 2 3 Vilenkin, 1975 , sid. 75.
  5. Belousov, Tkachev, 2004 , sid. 39-40.
  6. Kormen, Leizerson, Rivest, Stein, 2005 , sid. 1206.
  7. 1 2 Hrbacek, Jech, 1999 , sid. 17-18.
  8. Kormen, Leizerson, Rivest, Stein, 2005 , sid. 1206-1207.
  9. Kormen, Leizerson, Rivest, Stein, 2005 , sid. 1213.
  10. Sudoplatov, Ovchinnikova, 2002 , sid. 109.
  11. <tuppel> . C++Referens. Hämtad 11 oktober 2013. Arkiverad från originalet 14 oktober 2013.
  12. std::tuple . cppreference.com . Hämtad 12 oktober 2013. Arkiverad från originalet 15 oktober 2013.
  13. The Boost Tuple Library - 1.54.0 . Boosta C++-bibliotek. Datum för åtkomst: 12 oktober 2013. Arkiverad från originalet 14 oktober 2013.
  14. Tuppel-klass . MSDN . Datum för åtkomst: 7 mars 2011. Arkiverad från originalet den 24 september 2010.

Litteratur

  • Sudoplatov SV, Ovchinnikova EV Elements of Discrete Mathematics: Lärobok. - M. : INFRA-M, Novosibirsk: NSTUs förlag, 2002. - 280 sid. — (Serie "Högre utbildning"). ISBN 5-16-000957-4 (INFRA-M), ISBN 5-7782-0332-2 (NSTU)
  • Belousov A. I., Tkachev S. B. Diskret matematik: Lärobok för gymnasieskolor / Redigerad av V. S. Zarubin, A. P. Krishchenko. — 3:e upplagan, stereotyp. - M . : Förlag av MSTU im. N. E. Bauman, 2004. - 744 sid. — ISBN 5-7038-1769-2 .
  • Kormen, Thomas H., Leiserson, Charles I., Rivest, Ronald L., Stein, Clifford. Algoritmer: konstruktion och analys = Introduktion till algoritmer. — 2:a upplagan. - M . : Förlag "Williams", 2005. - 1296 sid. — ISBN 5-8459-0857-4 .
  • N. Ya. Vilenkin. Populär kombinatorik. — M .: Nauka, 1975.
  • Engelsk-ryska ordboken för matematiska termer / Ed. P. S. Alexandrova. - 2:a, korrigerad. och ytterligare utg. - M . : Mir, 1994. - 416 sid. — ISBN 5-03-002952-4 .
  • Karel Hrbacek, Thomas Jech. Introduktion till mängdlära. — Tredje upplagan, reviderad och utökad. - 1999. - ISBN 0-8247-7915-0 .

Länkar