Is claíomh taisce iad na cruinne chun sonraí a stóráil. Arrays tanaí. Cuid 3

Is claíomh taisce iad na cruinne chun sonraí a stóráil. Arrays tanaí. Cuid 3I gcodanna roimhe seo (1, 2) labhair muid faoi dhomhanda mar chrainn, sa cheann seo féachfaimid ar dhomhanda mar arrays tanaí.

Eagar gann is cineál eagar é ina nglacann an chuid is mó de na luachanna an luach céanna.

Go praiticiúil, is minic a bhíonn eagair ghann chomh mór sin nach bhfuil aon phointe ag baint le cuimhne a áitiú le heilimintí comhionanna. Dá bhrí sin, tá sé ciallach eagair tanaí a chur i bhfeidhm ar bhealach nach gcuirtear cuimhne amú ar luachanna comhionanna a stóráil.
I roinnt teangacha ríomhchlárúcháin, áirítear araeraí tearca sa teanga féin,. mar shampla i J, MATLAB. Tá leabharlanna speisialta ag teangacha ríomhchlárúcháin eile a ligeann duit iad a chur i bhfeidhm. Le haghaidh C++ - Féin etc

Is iarrthóirí maithe iad na cruinne chun eagair theana a chur i bhfeidhm mar:

  1. Stórálann siad luachanna nóid áirithe amháin agus ní stórálann siad luachanna na cinn neamhshainithe;
  2. Tá an comhéadan chun rochtain a fháil ar luach nód thar a bheith cosúil le cé mhéad teangacha ríomhchlárúcháin a chuireann rochtain ar eilimint eagar iltoiseach i bhfeidhm.
    Set ^a(1, 2, 3)=5
    Write ^a(1, 2, 3)

  3. Is struchtúr measartha íseal é Global chun sonraí a stóráil, dá bhrí sin tá tréithe luais den scoth aige (ó na céadta mílte go dtí na mílte idirbheart in aghaidh an tsoicind, ag brath ar na crua-earraí, féach thíos). 1)

Ós rud é gur struchtúr leanúnach é an cruinne, déanann sé ciall eagair tanaí a chruthú orthu nuair a bhíonn a fhios roimh ré nach leor an méid RAM.

Ceann de na hairíonna a bhaineann le cur i bhfeidhm eagair gann ná luach réamhshocraithe éigin a thabhairt ar ais má dhéantar rochtain ar chill neamhshainithe.

Is féidir é seo a chur i bhfeidhm ag baint úsáide as an fheidhm $GET in COS. Measann an sampla seo eagar tríthoiseach.

SET a = $GET(^a(x,y,z), defValue)

Cad iad na tascanna a dteastaíonn eagair ghann uathu agus conas is féidir le daoine domhanda cabhrú leo?

Maitrís cóngarachta (nascacht).

maitrísí den sórt sin a úsáidtear chun graif a léiriú:

Is claíomh taisce iad na cruinne chun sonraí a stóráil. Arrays tanaí. Cuid 3

Ar ndóigh, dá mhéad an graf, is amhlaidh is mó nialais a bheidh sa mhaitrís. Más rud é, mar shampla, go dtógfaimid graf líonra sóisialta agus go gcuirfimid i láthair é i bhfoirm maitrís comhchosúil, ansin beidh sé beagnach go hiomlán comhdhéanta de nialais, i.e. beidh eagar gann.

Set ^m(id1, id2) = 1 
Set ^m(id1, id3) = 1 
Set ^m(id1, id4) = 1 
Set ^m(id1) = 3 
Set ^m(id2, id4) = 1 
Set ^m(id2, id5) = 1 
Set ^m(id2) = 2
....

Sa sampla seo, déanaimid sábháil ar fud an domhain ^m maitrís nascachta, chomh maith le líon na n-imill ag gach nód (cé hé cairde lena agus líon na gcairde).

Mura bhfuil líon na ndúl sa ghraf níos mó ná 29 milliún (tógtar an uimhir seo mar tháirge 8 * méid líne uasta), is é sin, bealach níos eacnamaí fós chun maitrísí den sórt sin a stóráil ná teaghráin beagán, ós rud é go n-uasmhéadaíonn a gcur i bhfeidhm bearnaí móra ar bhealach speisialta.

Déanann an fheidhm ionramhálacha le teaghráin ghiotán $ BIT.

; установка бита
SET $BIT(rowID, positionID) = 1
; получение бита
Write $BIT(rowID, positionID)

Tábla aistrithe meaisín stáit

Ós rud é gur gnáthghraf é an graf trasdula d'uathmaton críochta, ansin is é tábla trasdula an uathoibritheora críochta an maitrís cóngarachta céanna a pléadh thuas.

Uathoibríocht cheallacha

Is claíomh taisce iad na cruinne chun sonraí a stóráil. Arrays tanaí. Cuid 3

Is é an automaton cheallacha is cáiliúla Cluiche Life, a bhfuil, mar gheall ar a rialacha (nuair a bhíonn go leor comharsana ag cill, bás) ina raon gann.

Creideann Stephen Wolfram go bhfuil automata cheallacha réimse nua eolaíochta. Sa bhliain 2002, d'fhoilsigh sé leabhar 1280 leathanach, A New Kind of Science, ina áitíonn sé go ginearálta nach bhfuil dul chun cinn in uathmatataí ceallacha aonraithe, ach go bhfuil siad marthanach agus go bhfuil impleachtaí móra acu do gach réimse den eolaíocht.

Tá sé cruthaithe gur féidir aon algartam inrite ar ríomhaire a chur i bhfeidhm ag baint úsáide as uathoibritheoir cheallacha. Úsáidtear uathmata ceallacha chun timpeallachtaí agus córais dhinimiciúla a shamhaltú, chun fadhbanna algartamacha a réiteach agus chun críocha eile.

Má tá réimse ollmhór againn agus go gcaithfimid na stáit idirmheánacha uile d'uathmaton cheallacha a thaifeadadh, tá ciall le húsáid dhomhanda.

Cartagrafaíocht

Is é an chéad rud a thagann chun mo intinn nuair a bhaineann sé le húsáid eagair gann ná tascanna mapála.

De ghnáth, tá go leor spás folamh ar léarscáileanna. Má léirítear an léarscáil mar phicteilíní móra, beidh 71% de phicteilíní an Domhain áitithe ag an aigéan. Eagar tanaí. Agus má dhéanann tú iarratas ach oibreacha na lámha daonna, ansin beidh an spás folamh a bheith níos mó ná 95%.

Ar ndóigh, níl aon duine ag stóráil léarscáileanna i bhfoirm eagair raster;
Ach cad iad léarscáileanna veicteoir? Is cineál fráma é seo agus polylines agus polagáin comhdhéanta de phointí.
Bunachar sonraí pointí agus naisc eatarthu go bunúsach.

Ar cheann de na misin léarscáilithe is uaillmhianaí tá misean Teileascóp Gaia chun ár réaltra a mhapáil. Go figuratively, ár réaltra, cosúil leis na cruinne ar fad, tá sraith leanúnach gann: spásanna ollmhór de fholmhú ina bhfuil annamh pointí beaga - réaltaí. Tá spás folamh 99,999999…….%. Chun léarscáil ár réaltra a stóráil, roghnaíodh bunachar sonraí domhanda - Cache.

Níl a fhios agam an struchtúr cruinne atá sa tionscadal seo, is féidir liom glacadh leis go bhfuil sé cosúil le:

Set ^galaxy(b, l, d) = 1; Номер звезды по каталогу, если есть
Set ^galaxy(b, l, d, "name") = "Sun"
Set ^galaxy(b, l, d, "type") = "normal" ; варианты blackhole, quazar, red_dwarf и т.д.
Set ^galaxy(b, l, d, "weight") = 14E50
Set ^galaxy(b, l, d, "planetes") = 7
Set ^galaxy(b, l, d, "planetes", 1) = "Mercury"
Set ^galaxy(b, l, d, "planetes", 1, weight) = 1E20
...

Cá bhfuil b, l, d Réaltrach comhordanáidí domhanleithead, domhanfhad agus fad go dtí an Ghrian.

Ligeann struchtúr solúbtha na ndomhan duit aon tréithe riachtanacha a bhaineann leis na réaltaí agus na pláinéid a shábháil, ós rud é go bhfuil na boinn ar dhomhanda gan scéim.

Chun léarscáil ár gcruinne a stóráil, roghnaíodh Caché ní hamháin mar gheall ar a solúbthacht, ach freisin as a chumas chun sruth sonraí a stóráil go han-tapa, agus cruinneacha innéacs á gcruthú ag an am céanna le haghaidh cuardaigh thapa.

Má fhilleann muid ar an Domhan, cruthaíodh tionscadail cartagrafaíochta ar dhomhanda OpenStreetMap XAPI agus forc de OpenStreetMap - FOSM.

Le déanaí ar hackathon taisce cuireadh innéacsanna geospásúla i bhfeidhm Geospásúil. Táimid ag fanacht le halt ó na húdair le sonraí cur chun feidhme.

Cur i bhfeidhm innéacsanna spásúla ar bhonn domhanda in OpenStreetMap XAPI

Pictiúir a tógadh ó an cur i láthair seo.

Tá an cruinne ar fad roinnte ina chearnóga, ansin ina bhfo-chearnóga, agus ina bhfo-chearnóga ina bhfo-chearnóga, agus mar sin de. Go ginearálta, faigheann muid struchtúr ordlathach chun na cruinneoga a chruthaítear a stóráil.

Is claíomh taisce iad na cruinne chun sonraí a stóráil. Arrays tanaí. Cuid 3

Tráth ar bith, is féidir linn beagnach láithreach a iarraidh ar an gcearnóg atá ag teastáil nó é a ghlanadh, agus cuirfear gach fo-chearnóg ar ais nó a ghlanadh freisin.

Is féidir scéim chomhchosúil ar dhomhanda a chur i bhfeidhm ar bhealaí éagsúla.

Rogha 1:

Set ^m(a, b, a, c, d, a, b,c, d, a, b, a, c, d, a, b,c, d, a, 1) = idПервойТочки
Set ^m(a, b, a, c, d, a, b,c, d, a, b, a, c, d, a, b,c, d, a, 2) = idВторойТочки
...

Rogha 2:

Set ^m('abacdabcdabacdabcda', 1) = idПервойТочки
Set ^m('abacdabcdabacdabcda', 2) = idВторойТочки
...

Sa dá chás, níl sé deacair COS/M a úsáid chun pointí atá suite i gcearnóg ar bith a iarraidh. Beidh sé beagán níos éasca píosaí cearnacha spáis a ghlanadh ar aon leibhéal sa chéad rogha, ach is annamh a bhíonn sé seo riachtanach.

Sampla de cheann de na cearnóga íochtair:

Is claíomh taisce iad na cruinne chun sonraí a stóráil. Arrays tanaí. Cuid 3

Agus seo roinnt domhan domhanda ón tionscadal XAPI: léiriú ar innéacs ar dhomhanda:

Is claíomh taisce iad na cruinne chun sonraí a stóráil. Arrays tanaí. Cuid 3

Domhanda ^ bealach a úsáidtear chun pointí a stóráil polylines (bóithre, aibhneacha beaga, etc.) agus polagáin (limistéir iata: foirgnimh, foraoisí, etc.).

Aicmiú garbh ar úsáid eagair ghann ar dhomhanda.

  1. Stórálaimid comhordanáidí réad áirithe agus a staideanna (mapáil, uathmata ceallacha)
  2. Stórálaimid maitrísí tanaí.

I gcás 2) nuair a iarrtar comhordanáid ar leith i gcás nach sanntar luach don eilimint, ní mór dúinn luach na heiliminte réamhshocraithe eagar tanaí a fháil.

Bónais a fhaighimid nuair a bhíonn maitrísí iltoiseacha á stóráil i domhandaithe

Bain go tapa agus/nó roghnaigh píosaí spáis atá ina iolraí de shraitheanna, eitleáin, ciúbanna, etc. I gcásanna ina n-úsáidtear innéacsanna slánuimhreacha, d’fhéadfadh sé a bheith úsáideach go mbeadh sé in ann píosaí spáis ar iolraí sraitheanna, plánaí, ciúbanna, etc. iad a bhaint go tapa agus/nó a fháil.

foireann Kill is féidir linn eilimint amháin nó as a chéile a scriosadh, nó fiú eitleán iomlán. A bhuíochas le hairíonna na cruinne, tarlaíonn sé seo go han-tapa - na mílte uair níos tapúla ná baint eilimint-by-eilimint.

Léiríonn an figiúr eagar tríthoiseach i domhanda ^a agus cineálacha éagsúla scriosta.

Is claíomh taisce iad na cruinne chun sonraí a stóráil. Arrays tanaí. Cuid 3

Chun píosaí spáis a roghnú ag baint úsáide as innéacsanna aitheanta, is féidir leat an t-ordú a úsáid Cumaisc.

Roghnú colún maitrís isteach san athróg Colún:

; Зададим трёхмерный разреженный массив 3x3x3
Set ^a(0,0,0)=1,^a(2,2,0)=1,^a(2,0,1)=1,^a(0,2,1)=1,^a(2,2,2)=1,^a(2,1,2)=1
Merge Column = ^a(2,2)
; Выведем переменную Column
Zwrite Column

Conclúid:

Column(0)=1
Column(2)=1

Is é an rud atá suimiúil faoin athróg Colún ná go bhfuil raon gann againn freisin, nach mór rochtain a fháil air freisin trí $GET, ós rud é nach bhfuil luachanna réamhshocraithe stóráilte ann.

Is féidir píosaí spáis a roghnú freisin trí chlár beag a úsáideann an fheidhm $Ordú. Tá sé seo áisiúil go háirithe ar spásanna nach bhfuil a n-innéacsanna cainníochtaithe (cartagrafaíocht).

Conclúid

Cruthaíonn na hamanna reatha tascanna uaillmhianacha nua. Is féidir le graif a bheith comhdhéanta de na billiúin rinn, léarscáileanna déanta suas de na billiúin pointí, agus b'fhéidir gur mhaith le roinnt acu fiú a gcruinne féin a rith ar uathmata cealla (1, 2).

Nuair nach féidir leis an méid sonraí ó eagair tanaí a bheith oiriúnach i RAM a thuilleadh, ach ní mór duit oibriú leo, ansin is fiú smaoineamh ar an bhféidearthacht tionscadail den chineál céanna a chur i bhfeidhm ar dhomhanda agus ar COS.

Go raibh maith agat as do aird! Táimid ag fanacht le do chuid ceisteanna agus mianta sna tuairimí.

Séanadh: Is é an t-alt seo agus mo chuid tuairimí dó mo thuairim agus níl aon bhaint acu le seasamh oifigiúil InterSystems Corporation.

Foinse: will.com

Add a comment