ããã·ã¥ããŒãã«ã«ãããæ§ã ãªè¡çªè§£æ±ºæŠç¥ãçè§£ãå®è£ ããããã®å æ¬çã¬ã€ããå¹ççãªããŒã¿ä¿åãšååŸã«äžå¯æ¬ ã§ãã
ããã·ã¥ããŒãã«ïŒè¡çªè§£æ±ºæŠç¥ã®ç¿åŸ
ããã·ã¥ããŒãã«ã¯ã³ã³ãã¥ãŒã¿ãµã€ãšã³ã¹ã«ãããåºæ¬çãªããŒã¿æ§é ã§ãããããŒã¿ã®ä¿åãšååŸã®å¹çæ§ããåºãå©çšãããŠããŸããæ¿å ¥ãåé€ãæ€çŽ¢æäœã«ãããŠå¹³åO(1)ã®æéèšç®éãæäŸããéåžžã«åŒ·åã§ããããããããã·ã¥ããŒãã«ã®ããã©ãŒãã³ã¹ã®éµã¯ãè¡çªãã©ã®ããã«åŠçãããã«ããã£ãŠããŸãããã®èšäºã§ã¯ãè¡çªè§£æ±ºæŠç¥ã®å æ¬çãªæŠèŠãæäŸãããã®ã¡ã«ããºã ãå©ç¹ãæ¬ ç¹ãããã³å®è·µçãªèæ ®äºé ãæ¢ããŸãã
ããã·ã¥ããŒãã«ãšã¯ïŒ
æ¬è³ªçã«ãããã·ã¥ããŒãã«ã¯ããŒãå€ã«å¯Ÿå¿ä»ãã飿³é åã§ãããã®å¯Ÿå¿ä»ãã¯ããã·ã¥é¢æ°ãçšããŠå®çŸãããŸããããã·ã¥é¢æ°ã¯ããŒãå ¥åãšããŠåãåããããŒãã«ãšããŠç¥ãããé åãžã®ã€ã³ããã¯ã¹ïŒãŸãã¯ãããã·ã¥ãïŒãçæããŸãããã®ããŒã«é¢é£ä»ããããå€ã¯ããã®ã€ã³ããã¯ã¹ã«ä¿åãããŸãã忬ã«åºæã®è«æ±èšå·ããã峿žé€šãæ³åããŠãã ãããããã·ã¥é¢æ°ã¯ã峿žé€šå¡ãæ¬ã®ã¿ã€ãã«ïŒããŒïŒããã®æ£ã®å ŽæïŒã€ã³ããã¯ã¹ïŒã«å€æããããã®ã·ã¹ãã ã®ãããªãã®ã§ãã
è¡çªã®åé¡
çæ³çã«ã¯ãåããŒã¯äžæã®ã€ã³ããã¯ã¹ã«ãããã³ã°ãããŸãããããçŸå®ã«ã¯ãç°ãªãããŒãåãããã·ã¥å€ãçæããããšããããããŸããããã¯è¡çªãšåŒã°ããŸããéåžžãå¯èœãªããŒã®æ°ã¯ããã·ã¥ããŒãã«ã®ãµã€ãºãããã¯ããã«å€§ãããããè¡çªã¯é¿ããããŸããããããã®è¡çªãã©ã®ããã«è§£æ±ºããããããããã·ã¥ããŒãã«ã®ããã©ãŒãã³ã¹ã«å€§ãã圱é¿ããŸããããã¯ã2åã®ç°ãªãæ¬ãåãè«æ±èšå·ãæã£ãŠããŸã£ããããªãã®ã§ã峿žé€šå¡ã¯ããããåãå Žæã«çœ®ããªãããã®æŠç¥ãå¿ èŠã§ãã
è¡çªè§£æ±ºæŠç¥
è¡çªãåŠçããããã®æŠç¥ã¯ããã€ãååšããŸãããããã¯å€§ãŸãã«2ã€ã®äž»èŠãªã¢ãããŒãã«åé¡ã§ããŸãïŒ
- ãã§ã€ã³æ³ïŒãªãŒãã³ããã·ã¥æ³ãšããŠãç¥ãããïŒ
- ãªãŒãã³ã¢ãã¬ãã·ã³ã°æ³ïŒã¯ããŒãºãããã·ã¥æ³ãšããŠãç¥ãããïŒ
1. ãã§ã€ã³æ³
ãã§ã€ã³æ³ã¯ãããã·ã¥ããŒãã«ã®åã€ã³ããã¯ã¹ããåãã€ã³ããã¯ã¹ã«ããã·ã¥ãããããŒãšå€ã®ãã¢ã®é£çµãªã¹ãïŒãŸãã¯å¹³è¡¡æšãªã©ã®ä»ã®åçããŒã¿æ§é ïŒãæãè¡çªè§£æ±ºæè¡ã§ããå€ãããŒãã«ã«çŽæ¥ä¿åãã代ããã«ãåãããã·ã¥ãå ±æããå€ã®ãªã¹ããžã®ãã€ã³ã¿ãä¿åããŸãã
ä»çµã¿ïŒ
- ããã·ã¥åïŒããŒãšå€ã®ãã¢ãæ¿å ¥ããéãããã·ã¥é¢æ°ãã€ã³ããã¯ã¹ãèšç®ããŸãã
- è¡çªãã§ãã¯ïŒã€ã³ããã¯ã¹ãæ¢ã«å æãããŠããå ŽåïŒè¡çªïŒãæ°ããããŒãšå€ã®ãã¢ã¯ãã®ã€ã³ããã¯ã¹ã®é£çµãªã¹ãã«è¿œå ãããŸãã
- ååŸïŒå€ãååŸããã«ã¯ãããã·ã¥é¢æ°ãã€ã³ããã¯ã¹ãèšç®ãããã®ã€ã³ããã¯ã¹ã«ããé£çµãªã¹ãã§ããŒãæ€çŽ¢ããŸãã
äŸïŒ
ãµã€ãº10ã®ããã·ã¥ããŒãã«ãæ³åããŠãã ããããappleãããbananaãããcherryããšããããŒããã¹ãŠã€ã³ããã¯ã¹3ã«ããã·ã¥ããããšããŸãããã§ã€ã³æ³ã§ã¯ãã€ã³ããã¯ã¹3ã¯ããã3ã€ã®ããŒãšå€ã®ãã¢ãå«ãé£çµãªã¹ããæããŸãããã®åŸããbananaãã«é¢é£ä»ããããå€ãèŠã€ãããå Žåããbananaããããã·ã¥ããŠ3ãåŸãã€ã³ããã¯ã¹3ã®é£çµãªã¹ãããã©ãããbananaããšãã®é¢é£å€ãèŠã€ããŸãã
å©ç¹ïŒ
- ç°¡åãªå®è£ ïŒæ¯èŒççè§£ãããããå®è£ ã容æã§ãã
- ç·©ãããªæ§èœäœäžïŒããã©ãŒãã³ã¹ã¯è¡çªã®æ°ã«æ¯äŸããŠç·åœ¢çã«äœäžããŸããäžéšã®ãªãŒãã³ã¢ãã¬ãã·ã³ã°æ³ã圱é¿ãåããã¯ã©ã¹ã¿ãªã³ã°ã®åé¡ã«æ©ãŸãããããšã¯ãããŸããã
- é«ãããŒããã¡ã¯ã¿ã«å¯Ÿå¿ïŒããŒããã¡ã¯ã¿ã1ãè¶ ããïŒå©çšå¯èœãªã¹ãããããèŠçŽ ãå€ãïŒããã·ã¥ããŒãã«ãåŠçã§ããŸãã
- åé€ãç°¡åïŒããŒãšå€ã®ãã¢ãåé€ããã«ã¯ãé£çµãªã¹ããã察å¿ããããŒããåé€ããã ãã§ãã
æ¬ ç¹ïŒ
- 远å ã®ã¡ã¢ãªãªãŒããŒãããïŒè¡çªããèŠçŽ ãä¿åããããã«ãé£çµãªã¹ãïŒãŸãã¯ä»ã®ããŒã¿æ§é ïŒã®ããã®è¿œå ã¡ã¢ãªãå¿ èŠã§ãã
- æ€çŽ¢æéïŒææªã®ã·ããªãªïŒãã¹ãŠã®ããŒãåãã€ã³ããã¯ã¹ã«ããã·ã¥ãããïŒã§ã¯ãæ€çŽ¢æéã¯O(n)ã«äœäžããŸããããã§nã¯é£çµãªã¹ãå ã®èŠçŽ æ°ã§ãã
- ãã£ãã·ã¥ããã©ãŒãã³ã¹ïŒé£çµãªã¹ãã¯ãéé£ç¶çãªã¡ã¢ãªå²ãåœãŠã®ããããã£ãã·ã¥ããã©ãŒãã³ã¹ãäœãå ŽåããããŸããé åãæšã®ãããªããããã£ãã·ã¥ãã¬ã³ããªãŒãªããŒã¿æ§é ã®äœ¿çšãæ€èšããŠãã ããã
ãã§ã€ã³æ³ã®æ¹åïŒ
- 平衡æšïŒé£çµãªã¹ãã®ä»£ããã«ã平衡æšïŒäŸïŒAVLæšãèµ€é»æšïŒã䜿çšããŠè¡çªããèŠçŽ ãä¿åããŸããããã«ãããææªã®å Žåã®æ€çŽ¢æéãO(log n)ã«ççž®ãããŸãã
- åçé åãªã¹ãïŒåçé åãªã¹ãïŒJavaã®ArrayListãPythonã®listãªã©ïŒã䜿çšãããšãé£çµãªã¹ããšæ¯èŒããŠãã£ãã·ã¥ã®å±ææ§ãåäžããããã©ãŒãã³ã¹ãåäžããå¯èœæ§ããããŸãã
2. ãªãŒãã³ã¢ãã¬ãã·ã³ã°æ³
ãªãŒãã³ã¢ãã¬ãã·ã³ã°æ³ã¯ããã¹ãŠã®èŠçŽ ãããã·ã¥ããŒãã«èªäœã®äžã«çŽæ¥ä¿åããè¡çªè§£æ±ºæè¡ã§ããè¡çªãçºçãããšãã¢ã«ãŽãªãºã ã¯ããŒãã«å ã®ç©ºã®ã¹ããããæ¢æ»ïŒæ€çŽ¢ïŒããŸããããŒãšå€ã®ãã¢ã¯ããã®ç©ºã®ã¹ãããã«ä¿åãããŸãã
ä»çµã¿ïŒ
- ããã·ã¥åïŒããŒãšå€ã®ãã¢ãæ¿å ¥ããéãããã·ã¥é¢æ°ãã€ã³ããã¯ã¹ãèšç®ããŸãã
- è¡çªãã§ãã¯ïŒã€ã³ããã¯ã¹ãæ¢ã«å æãããŠããå ŽåïŒè¡çªïŒãã¢ã«ãŽãªãºã ã¯ä»£æ¿ã®ã¹ããããæ¢æ»ããŸãã
- æ¢æ»ïŒç©ºã®ã¹ããããèŠã€ãããŸã§æ¢æ»ãç¶ããŸããããŒãšå€ã®ãã¢ã¯ãã®ã¹ãããã«ä¿åãããŸãã
- ååŸïŒå€ãååŸããã«ã¯ãããã·ã¥é¢æ°ãã€ã³ããã¯ã¹ãèšç®ããããŒãèŠã€ãããã空ã®ã¹ãããã«ééããïŒããŒãååšããªãããšã瀺ãïŒãŸã§ããŒãã«ãæ¢æ»ããŸãã
ããã€ãã®æ¢æ»æè¡ãååšããããããã«ç¬èªã®ç¹åŸŽããããŸãïŒ
2.1 ç·åœ¢æ¢æ»æ³
ç·åœ¢æ¢æ»æ³ã¯æãåçŽãªæ¢æ»æè¡ã§ããå ã®ããã·ã¥ã€ã³ããã¯ã¹ããéå§ããŠã空ã®ã¹ããããé æ¬¡æ€çŽ¢ããŸããã¹ããããå æãããŠããå Žåãã¢ã«ãŽãªãºã ã¯æ¬¡ã®ã¹ããããæ¢æ»ããå¿ èŠã«å¿ããŠããŒãã«ã®å é ã«æ»ããŸãã
æ¢æ»ã·ãŒã±ã³ã¹ïŒ
h(key), h(key) + 1, h(key) + 2, h(key) + 3, ... (ããŒãã«ãµã€ãºãæ³ãšãã)
äŸïŒ
ãµã€ãº10ã®ããã·ã¥ããŒãã«ãèããŸããããŒãappleããã€ã³ããã¯ã¹3ã«ããã·ã¥ãããããã€ã³ããã¯ã¹3ãæ¢ã«å æãããŠããå Žåãç·åœ¢æ¢æ»æ³ã¯ã€ã³ããã¯ã¹4ãæ¬¡ã«ã€ã³ããã¯ã¹5ãšã空ã®ã¹ããããèŠã€ãããŸã§ãã§ãã¯ããŸãã
å©ç¹ïŒ
- å®è£ ãç°¡åïŒçè§£ãããããå®è£ ã容æã§ãã
- è¯å¥œãªãã£ãã·ã¥ããã©ãŒãã³ã¹ïŒé æ¬¡æ¢æ»ã®ãããç·åœ¢æ¢æ»æ³ã¯ãã£ãã·ã¥ããã©ãŒãã³ã¹ãè¯ãåŸåã«ãããŸãã
æ¬ ç¹ïŒ
- äžæ¬¡ã¯ã©ã¹ã¿ãªã³ã°ïŒç·åœ¢æ¢æ»æ³ã®äž»ãªæ¬ ç¹ã¯äžæ¬¡ã¯ã©ã¹ã¿ãªã³ã°ã§ããããã¯ãè¡çªãã¯ã©ã¹ã¿ãŒåããåŸåããããå æãããã¹ãããã®é·ãé£ãªããäœãåºããšãã«çºçããŸãããã®ã¯ã©ã¹ã¿ãªã³ã°ã¯ãæ¢æ»ããããã®é·ãé£ãªããæšªæããå¿ èŠããããããæ€çŽ¢æéãå¢å ãããŸãã
- ããã©ãŒãã³ã¹ã®äœäžïŒã¯ã©ã¹ã¿ãŒãæé·ããã«ã€ããŠããããã®ã¯ã©ã¹ã¿ãŒã§æ°ããªè¡çªãçºçãã確çãé«ãŸãããããªãããã©ãŒãã³ã¹ã®äœäžã«ã€ãªãããŸãã
2.2 äºæ¬¡æ¢æ»æ³
äºæ¬¡æ¢æ»æ³ã¯ãäºæ¬¡é¢æ°ã䜿çšããŠæ¢æ»ã·ãŒã±ã³ã¹ã決å®ããããšã«ãããäžæ¬¡ã¯ã©ã¹ã¿ãªã³ã°ã®åé¡ã軜æžããããšããŸããããã«ãããè¡çªãããŒãã«å šäœã«ããåçã«åæ£ãããããšãã§ããŸãã
æ¢æ»ã·ãŒã±ã³ã¹ïŒ
h(key), h(key) + 1^2, h(key) + 2^2, h(key) + 3^2, ... (ããŒãã«ãµã€ãºãæ³ãšãã)
äŸïŒ
ãµã€ãº10ã®ããã·ã¥ããŒãã«ãèããŸããããŒãappleããã€ã³ããã¯ã¹3ã«ããã·ã¥ãããããã€ã³ããã¯ã¹3ãå æãããŠããå Žåãäºæ¬¡æ¢æ»æ³ã¯ã€ã³ããã¯ã¹ 3 + 1^2 = 4ãæ¬¡ã«ã€ã³ããã¯ã¹ 3 + 2^2 = 7ãæ¬¡ã«ã€ã³ããã¯ã¹ 3 + 3^2 = 12ïŒ10ãæ³ãšããŠ2ïŒãªã©ããã§ãã¯ããŸãã
å©ç¹ïŒ
- äžæ¬¡ã¯ã©ã¹ã¿ãªã³ã°ã®åæžïŒäžæ¬¡ã¯ã©ã¹ã¿ãªã³ã°ãåé¿ããç¹ã§ç·åœ¢æ¢æ»æ³ãããåªããŠããŸãã
- ããåçãªååžïŒè¡çªãããŒãã«å šäœã«ããã£ãŠããåçã«åæ£ãããŸãã
æ¬ ç¹ïŒ
- äºæ¬¡ã¯ã©ã¹ã¿ãªã³ã°ïŒäºæ¬¡ã¯ã©ã¹ã¿ãªã³ã°ã®åé¡ããããŸãã2ã€ã®ããŒãåãã€ã³ããã¯ã¹ã«ããã·ã¥ãããå Žåããããã®æ¢æ»ã·ãŒã±ã³ã¹ã¯åãã«ãªããã¯ã©ã¹ã¿ãªã³ã°ã«ã€ãªãããŸãã
- ããŒãã«ãµã€ãºã®å¶éïŒæ¢æ»ã·ãŒã±ã³ã¹ãããŒãã«å ã®ãã¹ãŠã®ã¹ãããã蚪åããããšãä¿èšŒããããã«ãããŒãã«ãµã€ãºã¯çŽ æ°ã§ããå¿ èŠããããäžéšã®å®è£ ã§ã¯ããŒããã¡ã¯ã¿ã¯0.5æªæºã§ããå¿ èŠããããŸãã
2.3 ããã«ããã·ã¥æ³
ããã«ããã·ã¥æ³ã¯ã2çªç®ã®ããã·ã¥é¢æ°ã䜿çšããŠæ¢æ»ã·ãŒã±ã³ã¹ã決å®ããè¡çªè§£æ±ºæè¡ã§ããããã«ãããäžæ¬¡ããã³äºæ¬¡ã¯ã©ã¹ã¿ãªã³ã°ã®äž¡æ¹ãåé¿ããã®ã«åœ¹ç«ã¡ãŸãã2çªç®ã®ããã·ã¥é¢æ°ã¯ãéãŒãå€ãçæããããŒãã«ãµã€ãºãšäºãã«çŽ ã§ããããšãä¿èšŒããããã«æ éã«éžæããå¿ èŠããããŸãã
æ¢æ»ã·ãŒã±ã³ã¹ïŒ
h1(key), h1(key) + h2(key), h1(key) + 2*h2(key), h1(key) + 3*h2(key), ... (ããŒãã«ãµã€ãºãæ³ãšãã)
äŸïŒ
ãµã€ãº10ã®ããã·ã¥ããŒãã«ãèããŸããh1(key)ããappleãã3ã«ããã·ã¥ããh2(key)ããappleãã4ã«ããã·ã¥ãããšããŸããã€ã³ããã¯ã¹3ãå æãããŠããå Žåãããã«ããã·ã¥æ³ã¯ã€ã³ããã¯ã¹ 3 + 4 = 7ãæ¬¡ã«ã€ã³ããã¯ã¹ 3 + 2*4 = 11ïŒ10ãæ³ãšããŠ1ïŒã次ã«ã€ã³ããã¯ã¹ 3 + 3*4 = 15ïŒ10ãæ³ãšããŠ5ïŒãªã©ããã§ãã¯ããŸãã
å©ç¹ïŒ
- ã¯ã©ã¹ã¿ãªã³ã°ã®åæžïŒäžæ¬¡ããã³äºæ¬¡ã¯ã©ã¹ã¿ãªã³ã°ã®äž¡æ¹ã广çã«åé¿ããŸãã
- è¯å¥œãªååžïŒããŒãããŒãã«å šäœã«ããã£ãŠããåäžã«ååžãããŸãã
æ¬ ç¹ïŒ
- ããè€éãªå®è£ ïŒ2çªç®ã®ããã·ã¥é¢æ°ã®æ éãªéžæãå¿ èŠã§ãã
- ç¡éã«ãŒãã®å¯èœæ§ïŒ2çªç®ã®ããã·ã¥é¢æ°ãæ éã«éžæãããŠããªãå ŽåïŒäŸãã°ã0ãè¿ãå¯èœæ§ãããå ŽåïŒãæ¢æ»ã·ãŒã±ã³ã¹ãããŒãã«å ã®ãã¹ãŠã®ã¹ãããã蚪åãããç¡éã«ãŒãã«é¥ãå¯èœæ§ããããŸãã
ãªãŒãã³ã¢ãã¬ãã·ã³ã°æ³ã®æ¯èŒ
以äžã¯ããªãŒãã³ã¢ãã¬ãã·ã³ã°æ³ã®äž»ãªéãããŸãšãã衚ã§ãïŒ
| æè¡ | æ¢æ»ã·ãŒã±ã³ã¹ | å©ç¹ | æ¬ ç¹ |
|---|---|---|---|
| ç·åœ¢æ¢æ»æ³ | h(key) + i (ããŒãã«ãµã€ãºãæ³ãšãã) |
åçŽãè¯å¥œãªãã£ãã·ã¥ããã©ãŒãã³ã¹ | äžæ¬¡ã¯ã©ã¹ã¿ãªã³ã° |
| äºæ¬¡æ¢æ»æ³ | h(key) + i^2 (ããŒãã«ãµã€ãºãæ³ãšãã) |
äžæ¬¡ã¯ã©ã¹ã¿ãªã³ã°ãåæž | äºæ¬¡ã¯ã©ã¹ã¿ãªã³ã°ãããŒãã«ãµã€ãºã®å¶é |
| ããã«ããã·ã¥æ³ | h1(key) + i*h2(key) (ããŒãã«ãµã€ãºãæ³ãšãã) |
äžæ¬¡ããã³äºæ¬¡ã¯ã©ã¹ã¿ãªã³ã°ã®äž¡æ¹ãåæž | ããè€éãh2(key)ã®æ éãªéžæãå¿ èŠ |
é©åãªè¡çªè§£æ±ºæŠç¥ã®éžæ
æé©ãªè¡çªè§£æ±ºæŠç¥ã¯ãç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ãšä¿åãããããŒã¿ã®ç¹æ§ã«ãã£ãŠç°ãªããŸããéžæã«åœ¹ç«ã€ã¬ã€ãã¯æ¬¡ã®ãšããã§ãïŒ
- ãã§ã€ã³æ³ïŒ
- ã¡ã¢ãªãªãŒããŒãããã倧ããªæžå¿µäºé ã§ãªãå Žåã«äœ¿çšããŸãã
- ããŒããã¡ã¯ã¿ãé«ããªãå¯èœæ§ã®ããã¢ããªã±ãŒã·ã§ã³ã«é©ããŠããŸãã
- ããã©ãŒãã³ã¹åäžã®ããã«ã平衡æšãåçé åãªã¹ãã®äœ¿çšãæ€èšããŠãã ããã
- ãªãŒãã³ã¢ãã¬ãã·ã³ã°æ³ïŒ
- ã¡ã¢ãªäœ¿çšéãéèŠã§ãããé£çµãªã¹ããä»ã®ããŒã¿æ§é ã®ãªãŒããŒããããé¿ãããå Žåã«äœ¿çšããŸãã
- ç·åœ¢æ¢æ»æ³ïŒå°ããªããŒãã«ããã£ãã·ã¥ããã©ãŒãã³ã¹ãæéèŠã®å Žåã«é©ããŠããŸãããäžæ¬¡ã¯ã©ã¹ã¿ãªã³ã°ã«æ³šæããŠãã ããã
- äºæ¬¡æ¢æ»æ³ïŒåçŽããšããã©ãŒãã³ã¹ã®è¯ã劥åç¹ã§ãããäºæ¬¡ã¯ã©ã¹ã¿ãªã³ã°ãšããŒãã«ãµã€ãºã®å¶éã«æ³šæããŠãã ããã
- ããã«ããã·ã¥æ³ïŒæãè€éãªéžæè¢ã§ãããã¯ã©ã¹ã¿ãªã³ã°ãåé¿ããç¹ã§æé«ã®ããã©ãŒãã³ã¹ãæäŸããŸããäºæ¬¡ããã·ã¥é¢æ°ã®æ éãªèšèšãå¿ èŠã§ãã
ããã·ã¥ããŒãã«èšèšã®äž»ãªèæ ®äºé
è¡çªè§£æ±ºä»¥å€ã«ããããã·ã¥ããŒãã«ã®ããã©ãŒãã³ã¹ãšæå¹æ§ã«åœ±é¿ãäžããããã€ãã®èŠå ããããŸãïŒ
- ããã·ã¥é¢æ°ïŒ
- ããŒãããŒãã«å šäœã«åçã«åæ£ãããè¡çªãæå°éã«æããããã«ã¯ãè¯ãããã·ã¥é¢æ°ãäžå¯æ¬ ã§ãã
- ããã·ã¥é¢æ°ã¯èšç®å¹çãè¯ãå¿ èŠããããŸãã
- MurmurHashãCityHashã®ãããªã確ç«ãããããã·ã¥é¢æ°ã®äœ¿çšãæ€èšããŠãã ããã
- æååããŒã«ã¯ãå€é åŒããã·ã¥é¢æ°ãäžè¬çã«äœ¿çšãããŸãã
- ããŒãã«ãµã€ãºïŒ
- ããŒãã«ãµã€ãºã¯ãã¡ã¢ãªäœ¿çšéãšããã©ãŒãã³ã¹ã®ãã©ã³ã¹ããšãããã«æ éã«éžæããå¿ èŠããããŸãã
- è¡çªã®å¯èœæ§ãæžããããã«ãããŒãã«ãµã€ãºã«çŽ æ°ã䜿çšããã®ãäžè¬çãªæ £è¡ã§ããããã¯ç¹ã«äºæ¬¡æ¢æ»æ³ã§éèŠã§ãã
- ããŒãã«ãµã€ãºã¯ãé床ã®è¡çªãåŒãèµ·ããããšãªããäºæ³ãããèŠçŽ æ°ãå容ã§ãã倧ããã§ããã¹ãã§ãã
- ããŒããã¡ã¯ã¿ïŒè² è·çïŒïŒ
- ããŒããã¡ã¯ã¿ã¯ãããŒãã«å ã®èŠçŽ æ°ãšããŒãã«ãµã€ãºã®æ¯çã§ãã
- é«ãããŒããã¡ã¯ã¿ã¯ãããŒãã«ãæºæ¯ã«è¿ã¥ããŠããããšã瀺ããè¡çªã®å¢å ãšããã©ãŒãã³ã¹ã®äœäžã«ã€ãªããå¯èœæ§ããããŸãã
- å€ãã®ããã·ã¥ããŒãã«å®è£ ã§ã¯ãããŒããã¡ã¯ã¿ãç¹å®ã®ãããå€ãè¶ ãããšããŒãã«ãåçã«ãªãµã€ãºããŸãã
- ãªãµã€ãºïŒ
- ããŒããã¡ã¯ã¿ããããå€ãè¶ ããå Žåãããã©ãŒãã³ã¹ãç¶æããããã«ããã·ã¥ããŒãã«ããªãµã€ãºããå¿ èŠããããŸãã
- ãªãµã€ãºã«ã¯ãæ°ããããã倧ããªããŒãã«ãäœæããæ¢åã®ãã¹ãŠã®èŠçŽ ãæ°ããããŒãã«ã«åããã·ã¥ããããšãå«ãŸããŸãã
- ãªãµã€ãºã¯ã³ã¹ãã®ãããæäœãªã®ã§ãé »ç¹ã«è¡ãã¹ãã§ã¯ãããŸããã
- äžè¬çãªãªãµã€ãºæŠç¥ã«ã¯ãããŒãã«ãµã€ãºã2åã«ããããåºå®ã®ããŒã»ã³ããŒãžã§å¢å ãããæ¹æ³ããããŸãã
å®è·µçãªäŸãšèæ ®äºé
ç°ãªãè¡çªè§£æ±ºæŠç¥ã奜ãŸããå¯èœæ§ã®ããå®è·µçãªäŸãšã·ããªãªãããã€ãèããŠã¿ãŸãããïŒ
- ããŒã¿ããŒã¹ïŒå€ãã®ããŒã¿ããŒã¹ã·ã¹ãã ã¯ãã€ã³ããã¯ã¹äœæããã£ãã·ã³ã°ã«ããã·ã¥ããŒãã«ã䜿çšããŸããå€§èŠæš¡ãªããŒã¿ã»ãããåŠçããã¯ã©ã¹ã¿ãªã³ã°ãæå°éã«æããããã©ãŒãã³ã¹ãããããã«ããã·ã¥æ³ã平衡æšãçšãããã§ã€ã³æ³ã奜ãŸããå ŽåããããŸãã
- ã³ã³ãã€ã©ïŒã³ã³ãã€ã©ã¯ã倿°åã察å¿ããã¡ã¢ãªäœçœ®ã«ãããã³ã°ããã·ã³ãã«ããŒãã«ãæ ŒçŽããããã«ããã·ã¥ããŒãã«ã䜿çšããŸãããã®åçŽããšå¯å€æ°ã®ã·ã³ãã«ãåŠçã§ããèœåããããã§ã€ã³æ³ããã°ãã°äœ¿çšãããŸãã
- ãã£ãã·ã³ã°ïŒãã£ãã·ã³ã°ã·ã¹ãã ã¯ãé »ç¹ã«ã¢ã¯ã»ã¹ãããããŒã¿ãæ ŒçŽããããã«ããã·ã¥ããŒãã«ããã䜿çšããŸãããã£ãã·ã¥ããã©ãŒãã³ã¹ãéèŠãªå°èŠæš¡ãªãã£ãã·ã¥ã«ã¯ãç·åœ¢æ¢æ»æ³ãé©ããŠããå ŽåããããŸãã
- ãããã¯ãŒã¯ã«ãŒãã£ã³ã°ïŒãããã¯ãŒã¯ã«ãŒã¿ãŒã¯ãå®å ã¢ãã¬ã¹ã次ã®ãããã«ãããã³ã°ããã«ãŒãã£ã³ã°ããŒãã«ãæ ŒçŽããããã«ããã·ã¥ããŒãã«ã䜿çšããŸããã¯ã©ã¹ã¿ãªã³ã°ãåé¿ããå¹ççãªã«ãŒãã£ã³ã°ã確ä¿ããèœåãããããã«ããã·ã¥æ³ã奜ãŸããå ŽåããããŸãã
ã°ããŒãã«ãªèŠç¹ãšãã¹ããã©ã¯ãã£ã¹
ã°ããŒãã«ãªæèã§ããã·ã¥ããŒãã«ãæ±ãéã«ã¯ã以äžãèæ ®ããããšãéèŠã§ãïŒ
- æåãšã³ã³ãŒãã£ã³ã°ïŒæååãããã·ã¥åããéã¯ãæåãšã³ã³ãŒãã£ã³ã°ã®åé¡ã«æ³šæããŠãã ãããç°ãªãæåãšã³ã³ãŒãã£ã³ã°ïŒäŸïŒUTF-8ãUTF-16ïŒã¯ãåãæååã«å¯ŸããŠç°ãªãããã·ã¥å€ãçæããå¯èœæ§ããããŸããããã·ã¥åããåã«ããã¹ãŠã®æååãäžè²«ããŠãšã³ã³ãŒããããŠããããšã確èªããŠãã ããã
- ããŒã«ãªãŒãŒã·ã§ã³ïŒã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®èšèªããµããŒãããå¿ èŠãããå Žåãç¹å®ã®èšèªãæåçæ £ç¿ãèæ ®ãããã±ãŒã«å¯Ÿå¿ã®ããã·ã¥é¢æ°ã®äœ¿çšãæ€èšããŠãã ããã
- ã»ãã¥ãªãã£ïŒããã·ã¥ããŒãã«ãæ©å¯ããŒã¿ãæ ŒçŽããããã«äœ¿çšãããå Žåãè¡çªæ»æãé²ãããã«æå·åŠçããã·ã¥é¢æ°ã®äœ¿çšãæ€èšããŠãã ãããè¡çªæ»æã¯ãããã·ã¥ããŒãã«ã«æªæã®ããããŒã¿ãæ¿å ¥ããããã«äœ¿çšãããã·ã¹ãã ãå±éºã«ãããå¯èœæ§ããããŸãã
- åœéåïŒi18nïŒïŒããã·ã¥ããŒãã«ã®å®è£ ã¯ãi18nã念é ã«çœ®ããŠèšèšããå¿ èŠããããŸããããã«ã¯ãç°ãªãæåã»ãããç §åé åºãããã³æ°å€åœ¢åŒã®ãµããŒããå«ãŸããŸãã
çµè«
ããã·ã¥ããŒãã«ã¯åŒ·åã§æ±çšæ§ã®é«ãããŒã¿æ§é ã§ããããã®ããã©ãŒãã³ã¹ã¯éžæãããè¡çªè§£æ±ºæŠç¥ã«å€§ããäŸåããŸããããŸããŸãªæŠç¥ãšãã®ãã¬ãŒããªããçè§£ããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®ããŒãºã«åãããããã·ã¥ããŒãã«ãèšèšããã³å®è£ ã§ããŸããããŒã¿ããŒã¹ãã³ã³ãã€ã©ããŸãã¯ãã£ãã·ã³ã°ã·ã¹ãã ã®ããããæ§ç¯ããŠããå Žåã§ããé©åã«èšèšãããããã·ã¥ããŒãã«ã¯ããã©ãŒãã³ã¹ãšå¹çãå€§å¹ ã«åäžãããããšãã§ããŸãã
è¡çªè§£æ±ºæŠç¥ãéžæããéã«ã¯ãããŒã¿ã®ç¹æ§ãã·ã¹ãã ã®ã¡ã¢ãªå¶çŽãããã³ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹èŠä»¶ãæ éã«æ€èšããããšãå¿ããªãã§ãã ãããæ éãªèšç»ãšå®è£ ã«ãããããã·ã¥ããŒãã«ã®åãæŽ»çšããŠãå¹ççã§ã¹ã±ãŒã©ãã«ãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãã