αα
αααα»αααααααα»α (
αα
αααα»αααΆαα’αα»αααα α’αΆαα sparse α
αααΎαααααΆαααα ααα ααααα·αααΆαα
ααα»α
ααΆαα½ααααα»αααΆαααΆααααΆααα’αααα
αα
αΆαααΆαα½αααΉαααΆαα»ααΌα
ααααΆααααα·ααααααα ααΌα
αααα ααΆααα ααα»αααααα»αααΆαα’αα»ααααα’αΆαα sparse ααΆααααααααα’αααα
αα
αΆααα·αααααΌαααΆαααααααααΆαααΎααΆααααααΆαα»ααααααααΌα
ααααΆααααα·αα
αα
αααα»αααΆααΆααααααααααα·ααΈαα½αα
ααα½α α’αΆαα sparse ααααΌαααΆααα½ααααα
αΌααα
αααα»αααΆααΆαααα½αααΆ
Globals ααΊααΆαααααααααααα’αααααΆααα’αα»αααα sparse arrays αααααΆαααα
- αα½αααΆαααααΆαα»ααααααααααααΆααααΆααααΆααααααα»ααααα α αΎααα·ααααααΆαα»ααααααααα’αααΈααααα·αααΆαααααα;
- α
ααα»α
αααααΆαααααααΆααααΆαα
αΌαααααΎαααααααααααααΆααααΊααααααααααΆααααΆααααΆαααα
ααΉααααααααααΆααΆααααααααααα·ααΈααΆα
αααΎαα’αα»ααααααΆαα
αΌαααααΎααΆαα»α’αΆαααα α»αα·ααΆαααα
Set ^a(1, 2, 3)=5 Write ^a(1, 2, 3)
- αααααΊααΆαα
ααΆααααααααααααα·αααΆααααααααααααΆααααΆααααααΆαα»ααα·αααααα ααΌα
ααααααΆααΆαααααααααααΏαααα’ααα
αΆααα (ααΈααΆααααααΆααααΆαααα
ααΆαααα·αααΆαααααα·ααααα·ααΆααααα»ααα½ααα·ααΆααΈ α’αΆαααααααΎαααααααΉα ααΌαααΎαααΆαααααα)α
1 )
αααααΆααααααΊααΆαα ααΆααααααααααΆααααΆαα ααΆααα ααα»αααααα»αααΆααααααΎα sparse arrays ααΎαα½αααΆ αα ααααααααααΉαααΆαα»αααΆα ααα½α RAM ααΉααα·ααααααααααΆααααα
αααααααααααααα·αα½αααααΆαα’αα»ααααα’αΆαα sparse ααΊααΎααααΈαααα‘αααααααααααΆαααΎααα½αα ααα½α ααααα·αααΎααΆαα αΌαααααΎααααΌαααΆαααααΎα‘αΎααα ααΆαααααα‘αΆααααα·αααΆααααααα
αααα’αΆα
ααααΌαααΆαα’αα»αααααααααααΎαα»αααΆα
SET a = $GET(^a(x,y,z), defValue)
ααΎβαα·α αα ααΆαβα’αααΈβααααβαααβαααααΌαβα±ααβααΆαβα’αΆααβααΌα α αΎαβααΎβααααααβα’αΆα βαα½αβααΆαβαααβααααβααΆ?
ααΆαααΆααααααΆ (ααΆααααααΆαα) αααΆααααΈα
ααΆααααααα ααααΆα ααααΆαααααα αααααΌαααααΉαααΆαααΆααααα
αααΎααα
αααα»ααααΆααααΈαα ααΆα§ααΆα ααα ααααα·αααΎααΎαααααααΆα αααααααΆαααααα α αΎααααα αΆαααΆαααα»ααααααααααΆααααΈαααααααααααΆ αααααΆααΉαααααΎαααααΆαααααα»ααααααααΌααα αααααΊα§α ααΉαβααΆβα’αΆααβααΌα
α
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
....
αααα»αα§ααΆα αααααα ααΎααααααΆαα»αααΆααα ^m αααΆααααΈαααααΆααααααΆαα ααααΌα ααΆα ααα½αααααα ααααΆααααΈαα½αα (α’αααααΆααΆαα·αααααΉαα’αααααΆ αα·αα ααα½ααα·αααααααα·)α
ααααα·αααΎα
ααα½αααΆαα»αα
αααα»αααααΆα ααααΊαα·αααΎαααΈ 29 ααΆα (α
ααα½ααααααααΌαααΆαααααααΆααα·ααααα 8 * α
α§ααΆαααααΆαα½ααααααααΈαααααΌαααΆαα’αα»ααααααααα»αααΆα
; ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡΠ°
SET $BIT(rowID, positionID) = 1
; ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΡΠ°
Write $BIT(rowID, positionID)
ααΆααΆαααααΆααααααΌααααΆαααΈααααα
αααααΆαααααΆα ααααΆαααααΆααααααΌααα automaton αααααααΊααΆααααΆα ααααααααΆ αααααΆααΆαααααΆααααααΌααα automaton αααααααΊααΆαααΆααααΈαααΆααααΌα ααααΆαααααΆααα·ααΆααααΆααΆαααΎα
ααααααααααααα·αααααααα·ααΆ
ααααααααααααα·αααααααα·ααΆααααααΈααααΆααααα»αααΊ
Stephen Wolfram ααΏααΆ αααα·ααΆααααααααααααα·ααΊ
ααΆααααΌαααΆααααααΆααααΆ ααΆαααααα½ααααααααΆααααα’αΆα ααααα·ααααα·ααΆααα ααΎαα»αααααΌαααα’αΆα ααααΌαααΆαα’αα»αααααααααααΎ cellular automaton α Cellular automata ααααΌαααΆαααααΎααΎααααΈααααΎααααΌααα·ααααΆα αα·αααααααααααΆααααα ααΎααααΈαααααααΆααααα αΆαααα½ααααααααΆα αα·ααααααΆαααααααααααααααααα
ααααα·αααΎααΎαααΆαααΆααααααα½α α αΎαααΎαααααΌααααααααΆααααΆαααΆααααααααΆααα’αααα automaton αααα·ααΆ αααααΆααα ααα»αααααα»αααΆαααααΎαααα
ααααΌαααΆα
ααΏαααααΌααααα αΌααααααα»ααααα·ααααααααα»ααα ααααα·ααΆαα’αααΈααΆαααααΎ sparse arrays ααΊααΆαααΌααααααΈααΆααα·α αα α
ααΆααααα½αααΆααΆααααααααααααα αααΎααα ααΎαααααΈα ααααα·αααΎαααααΈααααΌαααΆαααααΆαααΆααΈαααααα ααα 71% ααααΈαααααααααααααΈααΉαααααΌαααΆαααΆααααΆααααααα αΆααα»αααα α’αΆααααααΆααα α αΎαβααααα·αβααΎβα’αααβα’αα»ααααβααβααβααα»ααα αααβα αααααβαααβααΉαβααΆαβα αααΎαβααΆα α©α₯%α
ααΆααΆααα·αααΆαα ααααΆαααααΆααααΆαααααααΆαα»ααααααΈαααα»αααααααααΆ raster arrays αα ααααΆαααα·α
αααααααΌαααΆαααααΎα
ααα»ααααααΎαααααΈααα·α
αααααΆα’αααΈ? αααααΊααΆααααααααααα»α αα·ααα α»ααα αα·ααα α»ααααααααΆαα
ααα»α
α
ααΆααΌαααααΆααα·ααααααααα
ααα»α
αα·αααΆααααααΆαααααΆααα½αααα
ααααααααααΌααααααΈααααΆααα α·α ααααΆαααα»ααα½α ααΊαααααααααααααΊα Gaia ααΎααααΈααΌααααααΈααΆα‘αΆαααααΈααααααΎαα αα·ααΆαααΆααααααα ααΆα‘αΆαααααΈααααααΎα ααΌα ααΆα αααααΆα‘ααΆααααΌα ααΊααΆα’αΆαα sparse ααααα α αααααααααααααΆαααα ααααααα»ααααααΆαα ααα»α ααΌα ααααααα - ααααΆαα α ααααααααααΊ 99,999999β¦β¦.%. ααΎααααΈαααααΆαα»ααααααΈααααΆα‘αΆαααααΈααααααΎα ααΌαααααΆααα·αααααααααααααΌαααΆαααααΎαααΎα - ααααΆαααααααΆααα
αααα»ααα·αααΉααα ααΆαααααααααα·αααααΆαααααααααααα αααα»αααααααααααα αααα»αα’αΆα ααααααααΆααΆααΆαααααααααααααααΉαα
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
...
ααααααααΆ b,l,d
αα ααΆαααααααααααα’αΆα ααααααααΆαααααααααα’αα»ααααΆαα±ααα’ααααααααΆαα»αααΌαααααααα αΆαααΆα αααααααΆα αα·αααααΆααΆ α αΆααααΆααααΈααΌαααααΆαααΎαααααααα·αααΆααααααααΆααααα·α α
ααΎααααΈαααααΆαα»ααααααΈααααααααααααααΎα CachΓ© ααααΌαααΆαααααΎαααΎααα·αααααΉααααααααΆααααΆαααααααααααααΆααα»ααααααα ααα»ααααααΆαααααααΆαααααααααΆαααααααΆααααααααα»αααΆααααααΆαα»ααα·ααααααααααααΈααααΆαααΏα ααααααααααααα»ααααααααΆαααααΆαααααΎααα·αα·ααααααααααααΆααααΆαααααααααα ααα
ααααα·αααΎααΎααααα‘αααα
αααααΈαα·α αααααααααααααΌαααΆαααααΌαααΆααααααΎαα‘αΎααα
ααΎαααααα
ααααΈαααα
ααΆαα’αα»αααααα·αα·ααααααα ααα ααΎαααααααα αααα»α OpenStreetMap XAPI
ααΌαααΆαααααΈ
αα·αααααααΆααααΌαααααΌαααΆααααα αααα ααΆααΆααα αααααΆααααααΆααααα αα·αααΆαααααΌα ααα ααΆααΆααααα αα·ααααααααααΆαααααα ααΆααΌαα ααΎαααα½αααΆααα ααΆααααααααααΆααΆαα»αααααααααΆαααααααΆαα»αααΌαα’αααΈααααααααααΌαααΆααααααΎαα‘αΎαα
αα
αααααΆαα½α ααΎαααααΎαααα’αΆα
ααααΎαα»αααΆααααααα
ααααΆαααααΆαα α¬αααααααΆ α αΎαααΆααααααΆααα’ααααααΉαααααΌααααααααααα·α α¬ααααααααααα
αααααααΆαααααααααααααΆαα ααΎαααα’αΆα ααααΌαααΆαα’αα»ααααααΆααα·ααΈααΆα αααΎαα
αααααΎα 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ΠΡΠΎΡΠΎΠΉΠ’ΠΎΡΠΊΠΈ
...
αααααΎα 2:
Set ^m('abacdabcdabacdabcda', 1) = idΠΠ΅ΡΠ²ΠΎΠΉΠ’ΠΎΡΠΊΠΈ
Set ^m('abacdabcdabacdabcda', 2) = idΠΡΠΎΡΠΎΠΉΠ’ΠΎΡΠΊΠΈ
...
αααα»αααααΈααΆααααΈαααα ααΆαα·ααα·ααΆααααα»αααΆαααααΎ COS/M ααΎααααΈααααΎαα»ααα·αααα»αααααΆαααΈααΆαααα ααΆαααααααααα·αααΆαα½ααααααα ααΆααΉαααΆαααΆαααΆααααα½αααααα·α αααα»αααΆααααα’αΆααααααααΆαααααααα αα ααααα·αααΆαα½ααα αααα»ααααααΎαααααΌα ααα»αααααααααΊααααα αΆαααΆα αααΆααα
α§ααΆα αααααααΆαααααααα·αααΆααα½αα
α αΎααααααΊααΆααααα½αα
ααα½αααΈαααααα XAPIα ααααΆααααααααααααααΎααααααα
ααα ^ ααααΌα ααααΎααΎααααΈαααααΆαα»ααα·αααα»
ααΆαα αΆααααααΆααααα»αααααΆαααααΎααααΆαα sparse arrays αα ααΎααααααα
- ααΎααααααΆαα»αααΌα’αααααααααααα»ααΆααααΆαα αα·αααααΆαααΆαααααααΆ (ααΆαααααΎαααααΈ ααααααααααααα·αααααααα·ααΆ)
- ααΎααααααΆαα»ααααΆααααΈαααΌα α
αααααΆααααααΈααΈ 2) αα αααααααΎαα»αααΌα’αααααααΆααααΆαααα½α αααααΆαα»αα·αααααΌαααΆααααααααααα ααΎαααααΌαααα½αααΆααααααααααΆαα»α’αΆαα sparse ααααΆαααΎαα
ααααΆαααααααΆαααααααΎαααα½αααΆααα ααααααααΆαα»ααααΆααααΈααα α»αα·ααΆαααααΆααα
ααα αααααΆαααΆαααα αα αα·α/α¬ααααΎαααΎααααααααα ααααααααααΆαα αααΎααα½α ααααα αα ααΌαααα αααααΆααααααΈααααα·αα·ααααα ααα½ααααααααΌαααΆαααααΎααααΆαα αααααααΆααααα»αααΆαααα αααααΆαααΆαααα αα αα·α/α¬αα αααααααααα ααααααααααΆααα α»αα½α ααααα αα ααΌαααα α’αΆα ααΆαααααααααα
αααα»α
αα½αααααααααα αΆαααΈα’αΆααααΈαα·ααΆαααααΆααα ^a αα·ααααααααααααααααΆααααΆααα»αα
ααΎααααΈααααΎαααΎααααααααααα ααααααααΎαα·αα·αααααααααααααΆαα α’αααα’αΆα
ααααΎααΆααααααααΆ
ααΆαααααΎαααΎααα½ααααααΆααααΈααα αααα»αα’ααααα½αααα
; ΠΠ°Π΄Π°Π΄ΠΈΠΌ ΡΡΡΡ
ΠΌΠ΅ΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΆΠ΅Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² 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
ααα ααααΈααααα·ααααΆα:
Column(0)=1
Column(2)=1
α’αααΈβαααβαα½αβα±ααβα
αΆααβα’αΆααααααβα’αααΈβα’αααβαα½αβααβααΊβααΆ ααΎαβααβααΆαβα’αΆααβαααααβααα αααβααααΌαβααβα
αΌαβααααΎαααΆαβααΆαβααα
ααΆαααααΎαααΎααααααααααα αααα’αΆα
ααααΎααΆαααΆαααααααααα·ααΈααΌα
αα½ααααααααΎαα»αααΆα
ααα ααααΈααααα·ααααΆα
ααααααΆααα
αα
α»αααααααααααΎαααΌαααΆαααΆααααααΆααα α·α
ααααΆααααΈα ααααΆα ααα’αΆα
αααααΎαααΆαααΆααααΆααααΆαααα
ααα»α
ααααΌα αααααΈααααααααΎαααΆαααΆααααΆααααΆαα
ααα»α
α αΎαα’ααααααααααα ααααΆα
ααααααΎαααΆαααααααααααΆαααααααα½ααααα
ααΎ automata αααα·ααΆ (
αα ααααααααα·ααΆααααα·ααααααααΈα’αΆααααΌα αα·αα’αΆα ααααΉα RAM ααααα ααα»ααααα’αααααααΌαααααΎααΆαααΆαα½ααα½αααΆ αααααΆααΆαααααααα·α αΆαααΆααΈααααααΆαααααΆαα’αα»ααααααααααααααααααααΆαα ααΎαααααα αα·α COS α
ααΌαβα’ααα»αβα ααααβααΆαβααα α·αααβαα»αααΆααβααααβαααα’ααα! ααΎααααα»ααααα αΆααααα½α αα·αααααααααΆααααΆααααα’ααααα αααα»αααα·αααααα
ααΆααα·αααα½ααα»αααααΌα: α’αααααααα αα·αααααααααααααα»αα
ααααααΆααΆαααα·ααααααααα»α α αΎααα·αααΆαααααΆααααααααΆαα½αααΉααα»ααααααααααΌαααΆααααα InterSystems Corporation ααα
ααααα: www.habr.com