åã®ããŒã (
å®éã«ã¯ãçé
åã¯éåžžã«å·šå€§ã§ããããšãå€ããããåäžã®èŠçŽ ã§ã¡ã¢ãªãå æããããšã«æå³ããããŸããã ãããã£ãŠãåäžã®å€ãæ ŒçŽããããã«ã¡ã¢ãªãç¡é§ã«ãªããªããããªæ¹æ³ã§ã¹ããŒã¹é
åãå®è£
ããããšã¯çã«ããªã£ãŠããŸãã
äžéšã®ããã°ã©ãã³ã°èšèªã§ã¯ãã¹ããŒã¹é
åãèšèªèªäœã«å«ãŸããŠããŸãã
ã°ããŒãã«ã¯ã次ã®çç±ãããã¹ããŒã¹é
åãå®è£
ããã®ã«é©ããåè£ã§ãã
- ç¹å®ã®ããŒãã®å€ã®ã¿ãä¿åããæªå®çŸ©ã®ããŒãã®å€ã¯ä¿åããŸããã
- ããŒãã®å€ã«ã¢ã¯ã»ã¹ããããã®ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãå€ãã®ããã°ã©ãã³ã°èšèªãå€æ¬¡å
é
åèŠçŽ ãžã®ã¢ã¯ã»ã¹ãå®è£
ããæ¹æ³ãšéåžžã«ãã䌌ãŠããŸãã
Set ^a(1, 2, 3)=5 Write ^a(1, 2, 3)
- Global ã¯ããŒã¿ãä¿åããããã®ããªãäœã¬ãã«ã®æ§é ã§ãããããåªããé床ç¹æ§ãåããŠããŸã (ããŒããŠã§ã¢ã«å¿ã㊠XNUMX ç§ãããæ°åäžããæ°åäžã®ãã©ã³ã¶ã¯ã·ã§ã³ã以äžãåç
§)ã
1 )
ã°ããŒãã«ã¯æ°žç¶çãªæ§é ã§ãããããRAM ã®éãååã§ã¯ãªãããšãäºåã«ããã£ãŠããå Žåã¯ãã°ããŒãã«äžã«ã¹ããŒã¹é åãäœæããããšãçã«ããªã£ãŠããŸãã
ã¹ããŒã¹é åå®è£ ã®ç¹æ§ã® XNUMX ã€ã¯ãæªå®çŸ©ã®ã»ã«ã«ã¢ã¯ã»ã¹ããå Žåã«ããã©ã«ãå€ãè¿ãããšã§ãã
ããã¯é¢æ°ã䜿çšããŠå®è£
ã§ããŸã
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)
ã¹ããŒããã·ã³é·ç§»ããŒãã«
æéãªãŒãããã³ã®é·ç§»ã°ã©ãã¯éåžžã®ã°ã©ãã§ãããããæéãªãŒãããã³ã®é·ç§»ããŒãã«ã¯äžã§èª¬æããã®ãšåãé£æ¥è¡åã«ãªããŸãã
ã»ã«ãªãŒãããã³
æãæåãªã»ã«ãªãŒãããã³ã¯
ã¹ãã£ãŒãã³ã»ãŠã«ãã©ã æ°ã¯ãã»ã«ãªãŒãããã³ã¯
ã³ã³ãã¥ãŒã¿äžã§å®è¡å¯èœãªã¢ã«ãŽãªãºã ã¯ãã¹ãŠãã»ã« ãªãŒãããã³ã䜿çšããŠå®è£ ã§ããããšã蚌æãããŠããŸãã ã»ã« ãªãŒãããã³ã¯ãåçãªç°å¢ãã·ã¹ãã ãã¢ãã«åããã¢ã«ãŽãªãºã ã®åââé¡ã解決ãããããã®ä»ã®ç®çã§äœ¿çšãããŸãã
巚倧ãªãã£ãŒã«ãããããã»ã« ãªãŒãããã³ã®ãã¹ãŠã®äžéç¶æ ãèšé²ããå¿ èŠãããå Žåã¯ãã°ããŒãã«ã䜿çšããã®ãåççã§ãã
å°å³äœæ
ã¹ããŒã¹é åã®äœ¿çšã«é¢ããŠæåã«æãæµ®ãã¶ã®ã¯ãã¿ã¹ã¯ã®ãããã³ã°ã§ãã
ååãšããŠããããã«ã¯ç©ºãã¹ããŒã¹ããããããããŸãã å°å³ã倧ããªãã¯ã»ã«ã§è¡šãããå Žåãå°çã®ãã¯ã»ã«ã® 71% ãæµ·ã«ãã£ãŠå ããããããšã«ãªããŸãã ã¹ããŒã¹é åã ãããŠã人éã®æã«ããäœåã ããé©çšãããšã空ãã¹ããŒã¹ã¯95ïŒ ä»¥äžã«ãªããŸãã
ãã¡ãããããããã©ã¹ã¿ãŒé
åã®åœ¢åŒã§ä¿åãã人ã¯èª°ããããããã¯ãã«è¡šçŸã䜿çšãããŸãã
ãããããã¯ãã« ããããšã¯äœã§ãããã? ããã¯ãã¬ãŒã ã®äžçš®ã§ãããç¹ã§æ§æãããããªã©ã€ã³ãããªãŽã³ã§ãã
æ¬è³ªçã«ã¯ããã€ã³ããšãããã®éã®æ¥ç¶ã®ããŒã¿ããŒã¹ã§ãã
æãéå¿çãªå°å³äœæããã·ã§ã³ã® 99,999999 ã€ã¯ãéæ²³ã®å°å³ãäœæããã¬ã€ã¢æé é¡ã®ããã·ã§ã³ã§ãã æ¯å©çã«èšãã°ãç§ãã¡ã®éæ²³ã¯ãå šå®å®ãšåæ§ã«ãé£ç¶ãããŸã°ããªé åãã€ãŸãããŸããªå°ããªç¹ãã€ãŸãæãååšãã巚倧ãªç©ºã®ç©ºéã§ãã 空ãã¹ããŒã¹ã¯XNUMXâŠâŠ.%ã§ãã ç§ãã¡ã®éæ²³ã®å°å³ãä¿åããããã«ãã°ããŒãã« ããŒã¿ããŒã¹ã§ãã Caché ãéžæãããŸããã
ãã®ãããžã§ã¯ãã®ã°ããŒãã«ã®æ£ç¢ºãªæ§é ã¯ããããŸãããã次ã®ãããªãã®ã§ãããšæšæž¬ã§ããŸãã
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 ã䜿çšããŠãä»»æã®ã¬ãã«ã®æ£æ¹åœ¢ã«ãããã€ã³ããèŠæ±ããããšã¯é£ãããããŸããã æåã®ãªãã·ã§ã³ã§ã¯ãä»»æã®ã¬ãã«ã®æ£æ¹åœ¢ã®ã¹ããŒã¹ãã¯ãªãŒã³ã¢ããããæ¹ãããããç°¡åã§ããããããå¿ èŠã«ãªãããšã¯ã»ãšãã©ãããŸããã
äžäœã¬ãã«ã®æ£æ¹åœ¢ã® XNUMX ã€ã®äŸ:
ããã§ã¯ãXAPI ãããžã§ã¯ãã®ããã€ãã®ã°ããŒãã«ã瀺ããŸãã ã°ããŒãã«ã®ã€ã³ããã¯ã¹ã®è¡šçŸ:
ã°ããŒãã« ^ãŠã§ã€ ãã€ã³ãã®ä¿ç®¡ã«äœ¿çšãããŸã
ã°ããŒãã«ã§ã®ã¹ããŒã¹é åã®äœ¿çšã®å€§ãŸããªåé¡ã
- ç¹å®ã®ãªããžã§ã¯ãã®åº§æšãšãã®ç¶æ (ãããã³ã°ãã»ã« ãªãŒãããã³) ãä¿åããŸãã
- ã¹ããŒã¹è¡åãä¿åããŸãã
ã±ãŒã¹ 2) ã®å ŽåãèŠçŽ ã«å€ãå²ãåœãŠãããŠããªãç¹å®ã®åº§æšããªã¯ãšã¹ãããå Žåãããã©ã«ãã®ã¹ããŒã¹é åèŠçŽ ã®å€ãååŸããå¿ èŠããããŸãã
å€æ¬¡å è¡åãã°ããŒãã«ã«ä¿åãããšãã«åŸãããããŒãã¹
è¡ãå¹³é¢ãç«æ¹äœãªã©ã®åæ°ã§ãã空éã®éšåããã°ããåé€ããã³/ãŸãã¯éžæããŸãã æŽæ°ã€ã³ããã¯ã¹ã䜿çšãããå Žåãè¡ãå¹³é¢ãç«æ¹äœãªã©ã®åæ°ã§ãã空éã®ãã£ã³ã¯ãè¿ éã«åé€ããã³/ãŸãã¯ãã§ããã§ããæ©èœã圹ç«ã€å ŽåããããŸãã
ããŒã
ãã®å³ã¯ãã°ããŒãã«å ã® XNUMX 次å é åã瀺ããŠããŸãã ^a ããŸããŸãªçš®é¡ã®åé€ã
æ¢ç¥ã®ã€ã³ããã¯ã¹ã䜿çšããŠã¹ããŒã¹ã®äžéšãéžæããã«ã¯ã次ã®ã³ãã³ãã䜿çšã§ããŸãã
è¡åã®åã Column å€æ°ã«éžæããŸãã
; ÐаЎаЎОЌ ÑÑÑÑ
ЌеÑÐœÑй ÑазÑежеММÑй ЌаÑÑОв 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
Column å€æ°ã§èå³æ·±ãã®ã¯ãã¹ããŒã¹é
åããããããã«ãã¢ã¯ã»ã¹ããå¿
èŠãããããšã§ãã
ã¹ããŒã¹ã®äžéšã®éžæã¯ãé¢æ°ã䜿çšããå°ããªããã°ã©ã ãéããŠè¡ãããšãã§ããŸãã
ãŸãšã
çŸåšã®æ代ã¯ãæ°ããªéå¿çãªèª²é¡ãæèµ·ããŠããŸãã ã°ã©ãã¯æ°ååã®é ç¹ã§æ§æããããããã¯æ°ååã®ç¹ã§æ§æãããã»ã« ãªãŒãããã³ã§ç¬èªã®ãŠãããŒã¹ãå®è¡ããããšæã人ããããããããŸãã (
ã¹ããŒã¹é åããã®ããŒã¿éã RAM ã«åãŸããªãããã¹ããŒã¹é åãæäœããå¿ èŠãããå Žåã¯ãã°ããŒãã«ãš COS ã«åæ§ã®ãããžã§ã¯ããå®è£ ããå¯èœæ§ãæ€èšãã䟡å€ããããŸãã
ãæž èŽããããšãããããŸããïŒ ã質åããåžæã¯ã³ã¡ã³ãã«ãŠãåŸ ã¡ããŠãããŸãã
å
責äºé
: ãã®èšäºããã³ããã«å¯Ÿããç§ã®ã³ã¡ã³ãã¯ç§ã®æèŠã§ãããã€ã³ã¿ãŒã·ã¹ãã ãºæ ªåŒäŒç€Ÿã®å
¬åŒèŠè§£ãšã¯äžåé¢ä¿ããããŸããã
åºæïŒ habr.com