Txij li thaum lub ntiaj teb no yog ib tug tsis tu ncua qauv, nws ua rau kev txiav txim siab los tsim sparse arrays rau lawv thaum nws paub ua ntej tias tus nqi ntawm RAM yuav tsis txaus.
Ib qho ntawm cov khoom ntawm sparse array kev siv yog rov qab qee tus nqi qub yog tias muaj kev nkag mus rau lub xovtooj tsis tau txhais.
Qhov no tuaj yeem siv tau los ntawm kev ua haujlwm $GET hauv COS. Qhov piv txwv no suav nrog 3-dimensional array.
SET a = $GET(^a(x,y,z), defValue)
Cov hauj lwm dab tsi xav tau cov arrays sib cais thiab cov ntiaj teb yuav pab tau li cas?
Yog tias tus naj npawb ntawm cov ntsiab lus hauv daim duab tsis ntau tshaj 29 lab (tus lej no raug coj los ua cov khoom ntawm 8 * kab loj tshaj plaws), uas yog, ib qho kev lag luam ntau dua los khaws cov matrices yog cov hlua me ntsis, txij li lawv qhov kev siv ua kom zoo dua qhov sib txawv loj hauv txoj kev tshwj xeeb.
Manipulations nrog cov hlua me ntsis yog ua los ntawm kev ua haujlwm $BIT.
; установка бита
SET $BIT(rowID, positionID) = 1
; получение бита
Write $BIT(rowID, positionID)
Lub xeev tshuab hloov lub rooj
Txij li thaum qhov kev hloov pauv ntawm finite automaton yog ib daim duab zoo tib yam, ces cov lus hloov pauv ntawm lub finite automaton yog tib qhov adjacency matrix tau tham saum toj no.
Cellular automata
Qhov nrov tshaj plaws cellular automaton yog game "Lub neej", uas, vim nws txoj cai (thaum ib lub cell muaj ntau tus neeg nyob ze, nws tuag) yog ib tug sparse array.
Nws tau raug pov thawj tias txhua algorithm executable ntawm lub computer tuaj yeem siv tau siv lub cellular automaton. Cellular automata yog siv los ua qauv dynamic ib puag ncig thiab cov tshuab, los daws cov teeb meem algorithmic thiab rau lwm yam.
Yog tias peb muaj thaj chaw loj thiab peb yuav tsum tau sau tag nrho cov xeev nruab nrab ntawm lub xov tooj ntawm tes automaton, ces nws ua rau kev txiav txim siab siv thoob ntiaj teb.
Cartography
Thawj qhov uas los rau hauv kuv lub siab thaum nws los txog rau kev siv sparse arrays yog daim ntawv qhia ua haujlwm.
Raws li txoj cai, muaj ntau qhov chaw khoob ntawm daim duab qhia chaw. Yog tias daim ntawv qhia tau sawv cev raws li cov pixels loj, ces 71% ntawm lub ntiaj teb pixels yuav nyob hauv dej hiav txwv. Sparse array. Thiab yog tias koj tsuas yog ua haujlwm ntawm tib neeg txhais tes, ces qhov chaw khoob yuav ntau dua 95%.
Tau kawg, tsis muaj leej twg khaws daim duab qhia chaw nyob rau hauv daim ntawv ntawm raster arrays; ib tug vector sawv cev yog siv.
Tab sis dab tsi yog vector maps? Qhov no yog ib hom thav duab thiab polylines thiab polygons uas muaj cov ntsiab lus.
Qhov tseem ceeb yog database ntawm cov ntsiab lus thiab kev sib txuas ntawm lawv.
Ib lub hom phiaj tseem ceeb tshaj plaws hauv kev ua haujlwm yog Gaia Telescope lub hom phiaj los qhia peb lub galaxy. Figuratively hais lus, peb galaxy, zoo li tag nrho lub ntiaj teb, yog ib tug sparse array tsis tu ncua: loj qhov chaw ntawm emptiness nyob rau hauv uas muaj tsawg tsawg cov ntsiab lus - hnub qub. Qhov chaw seem yog 99,999999…….%. Txhawm rau khaws daim ntawv qhia ntawm peb lub galaxy, lub ntiaj teb database tau raug xaiv - Caché.
Kuv tsis paub tus qauv tseeb ntawm lub ntiaj teb hauv qhov project no, kuv tuaj yeem xav tias nws yog qee yam zoo li:
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
...
Cov qauv hloov pauv ntawm lub ntiaj teb no tso cai rau koj kom txuag tau cov yam ntxwv tsim nyog ntawm cov hnub qub thiab cov ntiaj chaw, txij li cov hauv paus hauv ntiaj teb yog cov tswv yim-tsawg.
Txhawm rau khaws daim ntawv qhia ntawm peb lub ntiaj teb, Caché tau xaiv tsis yog rau nws qhov yooj yim xwb, tab sis kuj rau nws lub peev xwm khaws cov kwj ntawm cov ntaub ntawv sai heev, thaum tib lub sijhawm tsim cov ntsuas thoob ntiaj teb rau kev tshawb nrhiav ceev.
Yog tias peb rov qab mus rau lub ntiaj teb, ces cov phiaj xwm cartographic tau tsim nyob rau hauv ntiaj teb OpenStreetMap XAPI thiab ib rab diav rawg ntawm OpenStreetMap - FOSM.
Tsis ntev los no Hackathon Cache geospatial indexes tau siv Geospatial. Peb tab tom tos ib tsab xov xwm los ntawm cov kws sau ntawv nrog cov ntsiab lus siv.
Kev nqis tes ua ntawm spatial indexes ntawm lub ntiaj teb hauv OpenStreetMap XAPI
Tag nrho lub ntiaj teb muab faib ua squares, ces sub-squares, thiab sub-squares rau hauv sub-sub-squares, thiab lwm yam. Feem ntau, peb tau txais cov qauv hierarchical rau khaws cia uas lub ntiaj teb tsim.
Lub sijhawm twg los xij, peb tuaj yeem yuav luag tam sim ntawd thov cov xwm txheej xav tau lossis tshem nws, thiab tag nrho cov sub-squares tseem yuav rov qab los lossis tshem tawm.
Ib lub tswv yim zoo sib xws ntawm lub ntiaj teb tuaj yeem siv tau ntau txoj hauv kev.
Xaiv 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ВторойТочки
...
Xaiv 2:
Set ^m('abacdabcdabacdabcda', 1) = idПервойТочки
Set ^m('abacdabcdabacdabcda', 2) = idВторойТочки
...
Hauv ob qho xwm txheej, nws tsis yooj yim rau siv COS / M los thov cov ntsiab lus nyob rau hauv ib lub xwmfab ntawm txhua qib. Nws yuav yooj yim me ntsis los ntxuav cov square pieces ntawm qhov chaw ntawm txhua qib hauv thawj qhov kev xaiv, tab sis qhov no tsis tshua tsim nyog.
Tshem tawm sai sai thiab/lossis xaiv tej qhov chaw uas muaj ntau yam kab, dav hlau, cubes, thiab lwm yam. Rau cov xwm txheej uas siv cov lej suav, lub peev xwm tshem tawm sai sai thiab / lossis nqa cov chunks ntawm qhov chaw uas muaj ntau ntawm kab, dav hlau, lub voos xwmfab, thiab lwm yam yuav pab tau.
Pab neeg tua peb tuaj yeem rho tawm ib qho lossis ib kab, lossis txawm tias tag nrho lub dav hlau. Ua tsaug rau cov khoom ntawm lub ntiaj teb no, qhov no tshwm sim sai heev - ntau txhiab zaus sai dua li kev tshem tawm ntawm lub ntsiab lus.
Daim duab qhia txog peb-dimensional array nyob rau hauv lub ntiaj teb no ^a thiab ntau hom kev tshem tawm.
Dab tsi yog qhov nthuav txog Kab sib txawv yog tias peb kuj muaj qhov sib txawv, uas yuav tsum tau nkag mus los ntawm $GET, txij li qhov tseem ceeb tsis tau khaws cia rau hauv nws.
Xaiv tej qhov chaw tuaj yeem ua tiav los ntawm qhov kev pab cuam me me uas siv cov haujlwm $ Order. Qhov no yog tshwj xeeb tshaj yog yooj yim nyob rau hauv qhov chaw uas nws indices tsis quantized (cartography).
xaus
Lub sijhawm tam sim no tsim cov haujlwm tshiab uas xav tau. Cov duab tuaj yeem ua tau los ntawm ntau lab ntawm vertices, daim duab qhia ua los ntawm ntau lab ntawm cov ntsiab lus, thiab qee tus txawm xav khiav lawv lub ntiaj teb ntawm cellular automata (1, 2).
Thaum lub ntim ntawm cov ntaub ntawv los ntawm sparse arrays tsis tuaj yeem haum rau hauv RAM, tab sis koj yuav tsum ua haujlwm nrog lawv, ces nws tsim nyog xav txog qhov ua tau zoo ntawm kev siv cov haujlwm zoo sib xws hauv ntiaj teb thiab COS.
Ua tsaug rau koj mloog! Peb tab tom tos koj cov lus nug thiab xav tau hauv cov lus pom.