ãã®èšäºã¯ç¿»èš³ã§ã
ãããèŠããšã
å®éããããã«ããã®åŸãã»ãããŒã®ç¿»èš³ãå§ãŸããŸãã èªæžã楜ããïŒ
ã©ã®ãããªã¿ã¹ã¯ã«åãçµãå Žåã§ããåžžã«æ¬¡ã® XNUMX ã€ã®ã¹ããããå®è¡ããå¿ èŠããããŸãã
- éæãããç®æšã決ããŸãã
- ç®æšãéæããæ¹æ³ã決å®ããŸãã
- ããªãã®ç®æšã«æ¥ãŠãã ããã
ããã¯ããã°ã©ãã³ã°ã«ãåœãŠã¯ãŸããŸãã ã³ãŒããèšè¿°ãããšãã¯ã次ã®ããšãè¡ãå¿ èŠããããŸãã
- ããã°ã©ã ãäœããã¹ããã決å®ããŸãã
- ãã®ã¿ã¹ã¯ãã©ã®ããã«å®è¡ãããã決å®ããŸãã
- 察å¿ããã³ãŒããæžããŸãã
ãã¡ããæåŸã®ã¹ãããã¯éåžžã«éèŠã§ãããä»æ¥ã¯ããã«ã€ããŠã¯è©±ããŸããã 代ããã«ãæåã® XNUMX ã€ã«ã€ããŠèª¬æããŸãã ãã¹ãŠã®ããã°ã©ããŒã¯äœæ¥ãéå§ããåã«ããããå®è¡ããŸãã ãã©ãŠã¶ãæžãã®ãããŒã¿ããŒã¹ãæžãã®ãã決ããªããã°ã座ã£ãŠæžãããšã¯ã§ããŸããã ç®æšã«ã€ããŠã®ç¹å®ã®ã¢ã€ãã¢ãååšããå¿ èŠããããŸãã ãããŠãããã°ã©ã ãå ·äœçã«äœãããã®ããããèããŠãã³ãŒããäœããã®åœ¢ã§ãã©ãŠã¶ã«å€ããããšãæåŸ ããŠã³ãŒããäœæããªãã§ãã ããã
ãã®ã³ãŒãã®äºåæ€èšã¯å ·äœçã«ã©ã®ããã«è¡ãããã®ã§ãããã? ããã«ã©ãã ãã®åªåããã¹ãã§ããããïŒ ããã¯ãã¹ãŠã解決ããããšããŠããåé¡ãã©ãã ãè€éãã«ãã£ãŠæ±ºãŸããŸãã ãã©ãŒã«ããã¬ã©ã³ããªåæ£ã·ã¹ãã ãäœæããããšããŸãã ãã®å Žåãã³ãŒããäœæããåã«ãæ éã«æ€èšããå¿ èŠããããŸãã æŽæ°å€æ°ã 1 ã ãã€ã³ã¯ãªã¡ã³ãããå¿ èŠãããå Žåã¯ã©ããªãã§ãããã? äžèŠãããšãããã§ã¯ãã¹ãŠãäºçŽ°ãªããšãªã®ã§èããå¿ èŠã¯ãããŸãããããªãŒããŒãããŒãçºçããå¯èœæ§ãããããšãæãåºããŸãã ãããã£ãŠãåé¡ãåçŽãªã®ãè€éãªã®ããç解ããããã«ãããŸãèããå¿ èŠããããŸãã
åé¡ã«å¯Ÿããèãããã解決çãäºåã«èããŠããã°ãééããé¿ããããšãã§ããŸãã ãã ããããã«ã¯æèãæ確ã§ããããšãå¿ èŠã§ãã ãããéæããã«ã¯ãèªåã®èããæžãçããå¿ èŠããããŸãã ç§ã¯ãã£ãã¯ã»ã®ã³ãã³ã®æ¬¡ã®èšèããšãŠã奜ãã§ãããããªããæç« ãæžããšãèªç¶ã¯ããªãã®æèãã©ãã»ã©ãããã§ããããæããŠãããŸããã æžããªããšèããŠãããšããæããªãã ãããŠãèªåã®èããä»æ§æžã®åœ¢ã§æžãçããå¿ èŠããããŸãã
ä»æ§ã¯ãç¹ã«å€§èŠæš¡ãªãããžã§ã¯ãã§å€ãã®æ©èœãå®è¡ããŸãã ããããç§ã¯ãããã®ãã¡ã® XNUMX ã€ã«ã€ããŠã®ã¿è©±ããŸãããããã¯ç§ãã¡ãæ確ã«èããã®ã«åœ¹ç«ã¡ãŸãã æ確ã«èããããšã¯éåžžã«éèŠã§ãããéåžžã«é£ãããããããã§ã¯å©ããå¿ èŠã§ãã ä»æ§ã¯äœèªã§æžãã¹ãã§ãã? äžè¬ã«ãããã°ã©ããŒã«ãšã£ãŠåžžã«æåã®è³ªåã¯ããã©ã®èšèªã§æžãããã§ãã ããã«å¯Ÿããå¯äžã®æ£è§£ã¯ãããŸãããç§ãã¡ã解決ããŠããåé¡ã¯ããŸãã«ãå€æ§ã§ãã äžéšã®äººã«ãšã£ãŠãTLA+ ã¯ç§ãéçºããä»æ§èšèªã§ãã ãã®ä»ã®å Žåã¯ãäžåœèªã䜿çšããæ¹ã䟿å©ã§ãã ãã¹ãŠã¯ç¶æ³æ¬¡ç¬¬ã§ãã
ããã«éèŠãªã®ã¯ãããææ°ãªæèãéæããã«ã¯ã©ãããã°ããããšããå¥ã®è³ªåã§ãã åç: ç§ãã¡ã¯ç§åŠè ã®ããã«èããªããã°ãªããŸããã ããã¯éå» 500 幎ã«ããã£ãŠå®èšŒãããŠããèãæ¹ã§ãã ç§åŠã§ã¯ãçŸå®ã®æ°åŠçã¢ãã«ãæ§ç¯ããŸãã 倩æåŠã¯ãããããå³å¯ãªæå³ã§ã®æåã®ç§åŠã§ããã 倩æåŠã§äœ¿çšãããæ°åŠã¢ãã«ã§ã¯ã倩äœã¯è³ªéãäœçœ®ãéåéãæã£ãç¹ãšããŠèŠããŸãããå®éã«ã¯å±±ãæµ·ã朮æ±ãªã©ãå«ãéåžžã«è€éãªå€©äœã§ãã ãã®ã¢ãã«ã¯ãä»ã®ã¢ãã«ãšåæ§ãç¹å®ã®åé¡ã解決ããããã«äœæãããŸããã ææãèŠã€ããå¿ èŠãããå Žåã«ãæé é¡ãã©ãã«åãããã決å®ããã®ã«æé©ã§ãã ããããå°çäžã®å€©æ°ãäºæž¬ãããå Žåããã®ã¢ãã«ã¯æ©èœããŸããã
æ°åŠã䜿çšãããšãã¢ãã«ã®ããããã£ã決å®ã§ããŸãã ãããŠç§åŠã¯ããããã®ç¹æ§ãçŸå®ãšã©ã®ããã«é¢ä¿ããŠãããã瀺ããŠããŸãã ç§ãã¡ã®ç§åŠãã³ã³ãã¥ãŒã¿ãŒãµã€ãšã³ã¹ã«ã€ããŠè©±ããŸãããã ç§ãã¡ãå®éã«äœ¿çšããŠããã®ã¯ãããã»ããµãŒãã²ãŒã æ©ãã³ã³ãã¥ãŒã¿ãŒãããã°ã©ã ã®å®è¡ãªã©ãããŸããŸãªçš®é¡ã®ã³ã³ãã¥ãŒãã£ã³ã° ã·ã¹ãã ã§ãã ã³ã³ãã¥ãŒã¿ãŒäžã§ã®ããã°ã©ã ã®å®è¡ã«ã€ããŠèª¬æããŸãããæŠããŠããããã®çµè«ã¯ãã¹ãŠãã©ã®ã³ã³ãã¥ãŒã¿ãŒ ã·ã¹ãã ã«ãåœãŠã¯ãŸããŸãã ç§ãã¡ã®ç§åŠã§ã¯ããã¥ãŒãªã³ã° ãã·ã³ãéšåçã«é åºä»ããããäžé£ã®ã€ãã³ããªã©ãããŸããŸãªã¢ãã«ã䜿çšãããŠããŸãã
ããã°ã©ã ãšã¯äœã§ãã? ããã¯ãç¬ç«ããŠèæ ®ã§ããä»»æã®ã³ãŒãã§ãã ãã©ãŠã¶ãäœæããå¿ èŠããããšããŸãã ç§ãã¡ã¯ XNUMX ã€ã®ã¿ã¹ã¯ãå®è¡ããŸãããŠãŒã¶ãŒããèŠãããã°ã©ã ã®èŠæ¹ãèšèšãã次ã«ããã°ã©ã ã®æŠèŠå³ãäœæããæåŸã«ã³ãŒããäœæããŸãã ã³ãŒããæžããŠãããšãããã¹ã ãã©ãŒããã¿ãäœæããå¿ èŠãããããšãããããŸãã ããã§ã XNUMX ã€ã®åé¡ã解決ããå¿ èŠããããŸãããã®ããŒã«ãã©ã®ãããªããã¹ããè¿ããã決å®ããŸãã ãã©ãŒãããã®ã¢ã«ãŽãªãºã ãéžæããŸãã ã³ãŒããæžããŸãã ãã®ã¿ã¹ã¯ã«ã¯ãåèªã«ãã€ãã³ãæ£ããæ¿å ¥ãããšããç¬èªã®ãµãã¿ã¹ã¯ããããŸãã ãã®ãµãã¿ã¹ã¯ã XNUMX ã€ã®ã¹ãããã§è§£æ±ºããŸããã芧ã®ãšããããããã®ã¹ãããã¯å€ãã®ã¬ãã«ã§ç¹°ãè¿ãããŸãã
æåã®ã¹ããããã€ãŸãããã°ã©ã ãã©ã®ãããªåé¡ã解決ããã®ããããã«è©³ããèããŠã¿ãŸãããã ããã§ã¯ãã»ãšãã©ã®å Žåãäœããã®å ¥åãåãåããäœããã®åºåãçæããé¢æ°ãšããŠããã°ã©ã ãã¢ãã«åããŸãã æ°åŠã§ã¯ãé¢æ°ã¯éåžžãé åºä»ãããããã¢ã®ã»ãããšããŠèšè¿°ãããŸãã ããšãã°ãèªç¶æ°ã®äºä¹é¢æ°ã¯éå {<0,0>, <1,1>, <2,4>, <3,9>, âŠ} ãšããŠèšè¿°ãããŸãã ãã®ãããªé¢æ°ã®å®çŸ©åã¯ãåãã¢ã®æåã®èŠçŽ ã®ã»ãããã€ãŸãèªç¶æ°ã§ãã é¢æ°ãå®çŸ©ããã«ã¯ããã®ã¹ã³ãŒããšåŒãæå®ããå¿ èŠããããŸãã
ãã ããæ°åŠã®é¢æ°ã¯ããã°ã©ãã³ã°èšèªã®é¢æ°ãšåãã§ã¯ãããŸããã èšç®ã¯ãã£ãšç°¡åã§ãã è€éãªäŸã«ã€ããŠèª¬æããæéããªãã®ã§ãåçŽãªäŸãèããŠã¿ãŸããããXNUMX ã€ã®æŽæ°ã®æ倧å
¬çŽæ°ãè¿ã C ã®é¢æ°ãŸã㯠Java ã®éçã¡ãœããã§ãã ãã®ã¡ãœããã®ä»æ§ã§ã¯ã次ã®ããã«æžããŸãã GCD(M,N)
åŒæ°çš M
О N
ã©ã GCD(M,N)
- ãã¡ã€ã³ãæŽæ°ã®ãã¢ã®ã»ããã§ãããæ»ãå€ã次ã®å€ã§å²ãåããæ倧ã®æŽæ°ã§ããé¢æ°ã M
О N
ã ãã®ã¢ãã«ã¯çŸå®ãšã©ã®ããã«é¢ä¿ããã®ã§ãããã? ã¢ãã«ã¯æŽæ°ã§åäœããŸãããC ãŸã㯠Java ã§ã¯ 32 ãããã®æŽæ°ã䜿çšãããŸãã int
ã ãã®ã¢ãã«ã«ãããã¢ã«ãŽãªãºã ãæ£ãããã©ãããå€æã§ããŸã GCD
, ãã ãããªãŒããŒãããŒãšã©ãŒã¯é²æ¢ã§ããŸããã ããã«ã¯ãããè€éãªã¢ãã«ãå¿
èŠã«ãªããŸãããæéããããŸããã
ã¢ãã«ãšããŠã®é¢æ°ã®å¶éã«ã€ããŠè©±ããŸãããã äžéšã®ããã°ã©ã (ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ãªã©) ã¯ãç¹å®ã®åŒæ°ã«å¯ŸããŠç¹å®ã®å€ãè¿ãã ãã§ãªããç¶ç¶çã«å®è¡ã§ããŸãã ããã«ãã¢ãã«ãšããŠã®æ©èœã¯ãåé¡ã®è§£æ±ºæ¹æ³ãèšç»ãããšãã XNUMX çªç®ã®ã¹ãããã«ã¯ããŸãé©ããŠããŸããã ã¯ã€ã㯠ãœãŒããšããã« ãœãŒãã¯åãé¢æ°ãèšç®ããŸããããããã¯ãŸã£ããç°ãªãã¢ã«ãŽãªãºã ã§ãã ãããã£ãŠãããã°ã©ã ã®ç®æšãã©ã®ããã«éæããããã説æããããã«ãå¥ã®ã¢ãã«ã䜿çšããŸãããããæšæºåäœã¢ãã«ãšåŒã³ãŸãã ãã®äžã®ããã°ã©ã ã¯ã蚱容ããããã¹ãŠã®åäœã®ã»ãããšããŠè¡šããããããããäžé£ã®ç¶æ ã§ããããã®ç¶æ ã¯å€æ°ãžã®å€ã®å²ãåœãŠã§ãã
Euclid ã¢ã«ãŽãªãºã ã® XNUMX çªç®ã®ã¹ããããã©ã®ãããªãã®ã«ãªãããèŠãŠã¿ãŸãããã èšç®ããå¿
èŠããããŸã GCD(M, N)
ã åæåãã M
æ¹æ³ x
ãš N
æ¹æ³ y
ã次ã«ããããã®å€æ°ã®å€§ããæ¹ããå°ããæ¹ãç¹°ãè¿ããçãããªããŸã§æžç®ããŸãã ããšãã°ã次ã®å Žå M = 12
ãš N = 18
ã次ã®åäœã説æã§ããŸãã
[x = 12, y = 18] â [x = 12, y = 6] â [x = 6, y = 6]
ãããŠãã M = 0
О N = 0
? ãŒãã¯ãã¹ãŠã®æ°å€ã§å²ãåããããããã®å Žåã®æ倧çŽæ°ã¯ãããŸããã ãã®ç¶æ³ã§ã¯ãæåã®ã¹ãããã«æ»ã£ãŠãæ£ã§ãªãæ°å€ã® GCD ãèšç®ããå¿
èŠããããã©ãããå°ããå¿
èŠããããŸãã å¿
èŠããªãå Žåã¯ä»æ§ãå€æŽããã ãã§æžã¿ãŸãã
ããã§ãçç£æ§ã«ã€ããŠå°ãäœè«ãããŠãããŸãã å€ãã®å ŽåãXNUMX æ¥ã«æžãããã³ãŒãã®è¡æ°ã§æž¬å®ãããŸãã ãã ããäžå®æ°ã®è¡ãåé€ãããšããã°ãå ¥ã蟌ãäœå°ãå°ãªããªããããäœæ¥ãããæçšã«ãªããŸãã ã³ãŒããåé€ããæãç°¡åãªæ¹æ³ã¯ãæåã®ã¹ãããã§ãã å®è£ ããããšããŠããä»å æ©èœã®ãã¹ãŠãå¿ èŠãªãå¯èœæ§ã¯ååã«ãããŸãã ããã°ã©ã ãç°¡çŽ åããæéãç¯çŽããæãç°¡åãªæ¹æ³ã¯ãå®è¡ãã¹ãã§ã¯ãªãããšãå®è¡ããªãããšã§ãã XNUMX çªç®ã®ã¹ãããã¯ãXNUMX çªç®ã«æéãç¯çŽã§ããå¯èœæ§ããããŸãã æžãããè¡æ°ã§çç£æ§ã枬å®ããå Žåãã¿ã¹ã¯ãéæããæ¹æ³ãèããããšã§ã çç£æ§ãäœããªããªããåãåé¡ãããå°ãªãã³ãŒãã§è§£æ±ºã§ããããã§ãã ããã§æ£ç¢ºãªçµ±èšã瀺ãããšã¯ã§ããŸãããä»æ§æžãã€ãŸãæåãš XNUMX çªç®ã®ã¹ãããã«æéãè²»ãããããã«æžããªãã£ãè¡æ°ãæ°ããæ¹æ³ããªãããã§ãã ãŸããå®éšã§ã¯æåã®ã¹ããããå®äºããæš©å©ããªããã¿ã¹ã¯ãäºåã«æ±ºããããŠãããããããã§ãå®éšãã»ããã¢ããããããšã¯ã§ããŸããã
éå ¬åŒä»æ§ã§ã¯å€ãã®åé¡ãèŠèœãšãããã¡ã§ãã é¢æ°ã®å³å¯ãªä»æ§ãèšè¿°ããããšã¯äœãé£ããããšã§ã¯ãããŸãããããã«ã€ããŠã¯èª¬æããŸããã 代ããã«ãæšæºã®åäœã«å¯Ÿãã匷åãªä»æ§ã®äœæã«ã€ããŠèª¬æããŸãã ããããäžé£ã®åäœã¯ã»ãã¥ãªã㣠ããããã£ã䜿çšããŠèšè¿°ã§ãããšããå®çããããŸãã ïŒå®å šæ§ïŒ çåæ§ç¹æ§ (çãçã)ã ã»ãã¥ãªãã£ãšã¯ãäœãæªãããšãèµ·ããããããã°ã©ã ãééã£ãçããäžããªãããšãæå³ããŸãã çåå¯èœæ§ãšã¯ãé ããæ©ããäœãè¯ãããšãèµ·ããããšãã€ãŸãããã°ã©ã ãé ããæ©ããæ£ããçããäžããããšãæå³ããŸãã ååãšããŠãã»ãã¥ãªãã£ã¯ããéèŠãªææšã§ããããšã©ãŒãæãé »ç¹ã«çºçããã®ã¯ããã§ãã ãããã£ãŠãæéãç¯çŽããããã«ãçåå¯èœæ§ã«ã€ããŠã¯è©±ããŸãããããã¡ãããããéèŠã§ãã
ãŸããå¯èœãªåæç¶æ
ã®ã»ãããèŠå®ããããšã§ã»ãã¥ãªãã£ãå®çŸããŸãã ãã㊠XNUMX çªç®ã«ãåç¶æ
ã§èãããããã¹ãŠã®æ¬¡ã®ç¶æ
ãšã®é¢ä¿ã§ãã ç§åŠè
ã®ããã«è¡åããŠãç¶æ
ãæ°åŠçã«å®çŸ©ããŠã¿ãŸãããã åæç¶æ
ã®ã»ããã¯ãããšãã° Euclid ã¢ã«ãŽãªãºã ã®å Žåã次ã®åŒã§èšè¿°ãããŸãã (x = M) ⧠(y = N)
ã ç¹å®ã®å€ã«ã€ããŠã¯ M
О N
åæç¶æ
㯠XNUMX ã€ã ãã§ãã 次ã®ç¶æ
ãšã®é¢ä¿ã¯ã次ã®ç¶æ
ã®å€æ°ã«ã¯ãã©ã€ã ãä»ããŠèšè¿°ããçŸåšã®ç¶æ
ã®å€æ°ã«ã¯ãã©ã€ã ãä»ããã«èšè¿°ããåŒã§èšè¿°ãããŸãã Euclid ã®ã¢ã«ãŽãªãºã ã®å ŽåãXNUMX ã€ã®åŒã®è«çåãæ±ããŸãããã®ãã¡ã® XNUMX ã€ã¯ x
ãæ倧å€ã§ãXNUMX çªç®ã®å€ã¯ - y
:
æåã®ã±ãŒã¹ã§ã¯ãy ã®æ°ããå€ã¯ y ã®ä»¥åã®å€ãšçããã倧ããå€æ°ããå°ããå€æ°ãæžç®ããããšã§ x ã®æ°ããå€ãåŸãããŸãã XNUMX çªç®ã®ã±ãŒã¹ã§ã¯ããã®éãè¡ããŸãã
Euclid ã®ã¢ã«ãŽãªãºã ã«æ»ããŸãããã ããäžåºŠä»®å®ããŠã¿ãŸããã M = 12
, N = 18
ã ããã¯åäžã®åæç¶æ
ãå®çŸ©ããŸãã (x = 12) ⧠(y = 18)
ã 次ã«ããããã®å€ãäžèšã®åŒã«ä»£å
¥ãããšã次ã®çµæãåŸãããŸãã
èããããå¯äžã®è§£æ±ºçã¯æ¬¡ã®ãšããã§ãã x' = 18 - 12 ⧠y' = 12
ãããšæ¬¡ã®ãããªåäœãåŸãããŸãã [x = 12, y = 18]
ã åæ§ã«ãè¡åã«ããããã¹ãŠã®ç¶æ
ãèšè¿°ããããšãã§ããŸãã [x = 12, y = 18] â [x = 12, y = 6] â [x = 6, y = 6]
.
æåŸã®ç¶æ
㧠[x = 6, y = 6]
åŒã®äž¡æ¹ã®éšåã false ã«ãªãããã次ã®ç¶æ
ã¯ãããŸããã ããã§ãXNUMX çªç®ã®ã¹ãããã®å®å
šãªä»æ§ãå®æããŸãããã芧ã®ãšãããããã¯ãšã³ãžãã¢ãç§åŠè
ã®ãããªããæ®éã®æ°åŠã§ãããã³ã³ãã¥ãŒã¿ãŒ ãµã€ãšã³ã¹ã®ãããªå¥åŠã§ã¯ãããŸããã
ããã XNUMX ã€ã®åŒã¯ãæçžè«çã® XNUMX ã€ã®åŒã«çµã¿åãããããšãã§ããŸãã 圌女ã¯ãšã¬ã¬ã³ãã§èª¬æããããã®ã§ãããä»ã¯æéããããŸããã æçžããžãã¯ã¯æŽ»æ°ã®ããããã£ã«ã®ã¿å¿ èŠã§ãããã»ãã¥ãªãã£ã«ã¯å¿ èŠãããŸããã ç§ã¯æçžè«çãã®ãã®ã奜ãã§ã¯ãããŸãããããã¯ãŸã£ããæ®éã®æ°åŠã§ã¯ãããŸãããã掻æ°ã®å Žåã«ã¯å¿ èŠæªã§ãã
Euclid ã®ã¢ã«ãŽãªãºã ã§ã¯ãåå€ã«å¯Ÿã㊠x
О y
ç¬ç¹ã®äŸ¡å€èŠ³ãæã£ãŠãã x'
О y'
ã次ã®ç¶æ
ãšã®é¢ä¿ã true ã«ãªããŸãã èšãæããã°ãEuclid ã®ã¢ã«ãŽãªãºã ã¯æ±ºå®è«çã§ãã é決å®çã¢ã«ãŽãªãºã ãã¢ãã«åããã«ã¯ãçŸåšã®ç¶æ
ã«è€æ°ã®å¯èœãªå°æ¥ã®ç¶æ
ãããã次ã®ç¶æ
ãšã®é¢ä¿ãçãšãªãããã«ãåãã©ã€ã ãããŠããªãå€æ°å€ãè€æ°ã®ãã©ã€ã ãããå€æ°å€ãæã£ãŠããå¿
èŠããããŸãã ããã¯ç°¡åã§ãããããã§ã¯äŸã瀺ããŸããã
å®çšçãªããŒã«ãäœæããã«ã¯ãæ£åŒãªæ°åŠãå¿
èŠã§ãã ä»æ§ãæ£åŒãªãã®ã«ããã«ã¯ã©ãããã°ããã§ãããã? ãããè¡ãã«ã¯ã次ã®ãããªåœ¢åŒèšèªãå¿
èŠã§ãã
äžè§åœ¢ã®ä»ããçå·èšå·ã¯ã笊å·ã®å·ŠåŽã®å€ã笊å·ã®å³åŽã®å€ãšçããããã«å®çŸ©ãããŠããããšãæå³ããŸãã æ¬è³ªçã«ãä»æ§ã¯ XNUMX ã€ã®å®çŸ©ã§ããããã®å Žå㯠XNUMX ã€ã®å®çŸ©ã§ãã TLA+ ã®ä»æ§ã«ã¯ãäžã®ã¹ã©ã€ãã«ããããã«ã宣èšãšããã€ãã®æ§æãè¿œå ããå¿ èŠããããŸãã ASCII ã§ã¯æ¬¡ã®ããã«ãªããŸãã
ã芧ã®ãšãããè€éãªããšã¯äœããããŸããã TLA+ ã®ä»æ§ã¯ãã¹ãã§ããŸããã€ãŸããå°èŠæš¡ã¢ãã«ã§èãããããã¹ãŠã®åäœããã€ãã¹ã§ããŸãã ç§ãã¡ã®å Žåããã®ã¢ãã«ã¯ç¹å®ã®å€ã«ãªããŸã M
О N
ã ããã¯ãå®å
šã«èªååãããéåžžã«å¹ççã§ç°¡åãªæ€èšŒæ¹æ³ã§ãã æ£åŒãªçå®èšŒæãæžããŠæ©æ¢°çã«ãã§ãã¯ããããšãå¯èœã§ãããéåžžã«æéããããããããããè¡ã人ã¯ã»ãšãã©ããŸããã
TLA+ ã®äž»ãªæ¬ ç¹ã¯ããããæ°åŠã§ãããããã°ã©ããŒãã³ã³ãã¥ãŒã¿ãŒç§åŠè
ãæ°åŠãæããŠããããšã§ãã äžèŠãããšåè«ã®ããã«èãããŸãããæ®å¿µãªããããã¯æ¬æ°ã§èšã£ãŠããŸãã ç§ã®ååã¯ãæ°äººã®éçºè
ã« TLA+ ã«ã€ããŠã©ã®ããã«èª¬æããããšããããç§ã«è©±ããŠãããŸããã æ°åŒãç»é¢ã«è¡šç€ºããããšããã«ã圌ãã¯ããã«ã¬ã©ã¹ã®ãããªç®ã«ãªããŸããã TLA+ ãæãå Žåã¯ã以äžã䜿çšã§ããŸãã
ãããã誰ãããTLA + ãš PlusCal ã¯æ°åŠã§ãããæ°åŠã¯çºæãããäŸã§ã®ã¿æ©èœããããšåè«ããã§ãããã å®éã«ã¯ãåãããã·ãŒãžã£ããªããžã§ã¯ããªã©ãåããå®éã®èšèªãå¿ èŠã§ãã ããã¯ééã£ãŠããŸãã Amazonã§åããŠããã¯ãªã¹ã»ãã¥ãŒã«ã æ°ã¯ããæžããŠããŸãã ãç§ãã¡ã¯ XNUMX 件ã®äž»èŠãããžã§ã¯ã㧠TLA+ ã䜿çšããŸãããããããã®å Žåããæ¬çªç°å¢ã«å ¥ãåã«å±éºãªãã°ãçºèŠã§ããéçºã«å¿ èŠãªæŽå¯ãšèªä¿¡ãåŸããããããTLA+ ã䜿çšããããšã§éçºã«å€§ããªéããçããŸãããããã°ã©ã ã®çå®ã«åœ±é¿ãäžããããšãªããç©æ¥µçãªããã©ãŒãã³ã¹ã®æé©åãè¡ããŸãããã 圢åŒçãªã¡ãœããã䜿çšãããšéå¹çãªã³ãŒããçæããããšãã話ãããèããŸãããå®éã«ã¯ãã¹ãŠããŸã£ããéã§ãã ãŸããããã°ã©ããŒã¯åœ¢åŒçææ³ã®æçšæ§ã確信ããŠããŠãã管çè ã¯åœ¢åŒçææ³ã®å¿ èŠæ§ãçŽåŸã§ããªããšããæèŠããããŸãã ãããŠãã¥ãŒã«ã ã¯ããæžããŠããã ããããŒãžã£ãŒã¯çŸåšãTLA + ã®ä»æ§ã®äœæã«ç±å¿ã«åãçµãã§ãããç¹ã«ããã«æéãå²ãåœãŠãŠããŸãããã ãããã£ãŠããããŒãžã£ãŒã¯ TLA+ ãæ©èœããŠããããšã確èªãããšãåãã§ãããåãå ¥ããŸãã Chris Newcomb ããããçŽ 2014 ãæå (14 幎 10 æ) ã«æžããŸããããçŸåšãç§ã®ç¥ãéããTLA+ 㯠360 ã§ã¯ãªã 360 ã®ãããžã§ã¯ãã§äœ¿çšãããŠããŸãããã XNUMX ã€ã®äŸã¯ãXBox XNUMX ã®èšèšã«é¢é£ããŠããŸããCharles Thacker ã®ãšããã«ã€ã³ã¿ãŒã³ãæ¥ãŠãã¡ã¢ãªã·ã¹ãã ã®ä»æ§ãæžããŸããã ãã®ä»æ§ã®ãããã§ãéåžžãªãæ°ã¥ãããªããã°ãçºèŠããããã®ããã§ãã¹ãŠã® XBox XNUMX ã XNUMX æé䜿çšãããšã¯ã©ãã·ã¥ããŠããŸããŸããã IBM ã®ãšã³ãžãã¢ã¯ããã¹ãã§ã¯ãã®ãã°ãèŠã€ãããªãã£ãããšã確èªããŸããã
TLA + ã«ã€ããŠã¯ã€ã³ã¿ãŒãããã§è©³ããèªãããšãã§ããŸãããããã§ã¯éå ¬åŒã®ä»æ§ã«ã€ããŠèª¬æããŸãããã æå°å ¬åæ°ãªã©ãèšç®ããããã°ã©ã ãäœæããå¿ èŠã¯ã»ãšãã©ãããŸããã ç§ã TLA+ çšã«æžããããªã㣠ããªã³ã¿ ããŒã«ã®ãããªããã°ã©ã ãæžãããšã®ã»ãããã£ãšå€ãã§ãã æãåçŽãªåŠçåŸã® TLA + ã³ãŒãã¯æ¬¡ã®ããã«ãªããŸãã
ããããäžèšã®äŸã§ã¯ããŠãŒã¶ãŒã¯ããããæ¥ç¶è©ãšçå·ãæããããšèããŠããŸãã ãããã£ãŠãæ£ããæžåŒã¯æ¬¡ã®ããã«ãªããŸãã
å¥ã®äŸãèããŠã¿ãŸãããïŒ
ããã§ã¯éã«ããœãŒã¹å ã®çå·ãå ç®ãä¹ç®ã®èšå·ã®é 眮ãã©ã³ãã ã§ãããããæãåçŽãªåŠçã§ååã§ãã äžè¬ã«ãæ£ããæžåŒèšå®ã®æ£ç¢ºãªæ°åŠçå®çŸ©ã¯ãããŸããããã®å Žåã®ãæ£ããããšã¯ããŠãŒã¶ãŒãæããã®ããæå³ãããããæ°åŠçã«æ±ºå®ããããšã¯ã§ããªãããã§ãã
çå®ã®å®çŸ©ããªããã°ãä»æ§ã¯åœ¹ã«ç«ããªãããã«æããŸãã ããããããã§ã¯ãããŸããã ããã°ã©ã ãäœãããã¹ããããããªããããšãã£ãŠããããã©ã®ããã«æ©èœããããèããå¿
èŠããªããšããæå³ã§ã¯ãããŸãããããã©ããããããã°ã©ã ã«ããã«åªåããå¿
èŠããããŸãã ããã§ã¯ä»æ§ãç¹ã«éèŠã§ãã æ§é åå°å·ã«æé©ãªããã°ã©ã ã決å®ããããšã¯äžå¯èœã§ãããæ§é åå°å·ããŸã£ããåãå
¥ããŠã¯ãããªããšããæå³ã§ã¯ãªããæèã®æµããšããŠã³ãŒããæžãããšã¯è¯ãããšã§ã¯ãããŸããã æçµçã«ãå®çŸ©ãå«ã XNUMX ã€ã®ã«ãŒã«ã®ä»æ§ãäœæããŸããã ã³ã¡ã³ãã®åœ¢ã§ Java ãã¡ã€ã«å
ã 以äžã«ã«ãŒã«ã® XNUMX ã€ã®äŸã瀺ããŸãã a left-comment token is LeftComment aligned with its covering token
ã ãã®ã«ãŒã«ã¯ãããã°æ°åŠè±èªã§æžãããŠããŸãã LeftComment aligned
, left-comment
О covering token
- å®çŸ©ä»ãã®çšèªã ãããæ°åŠè
ãæ°åŠã説æããæ¹æ³ã§ãã圌ãã¯çšèªã®å®çŸ©ãæžããããã«åºã¥ããŠã«ãŒã«ãèšè¿°ããŸãã ãã®ãããªä»æ§ã®å©ç¹ã¯ã850 è¡ã®ã³ãŒãããã 850 ã€ã®ã«ãŒã«ã®æ¹ãç解ãšãããã°ãã¯ããã«ç°¡åã§ããããšã§ãã ãããã®ã«ãŒã«ãæžãã®ã¯ç°¡åã§ã¯ãªãããããã°ã«ã¯ããªãã®æéãããããŸããã ç¹ã«ãã®ç®çã®ããã«ãã©ã®ã«ãŒã«ã䜿çšãããããå ±åããã³ãŒããæžããŸããã ããã XNUMX ã€ã®ã«ãŒã«ãããã€ãã®äŸã§ãã¹ããããããã§ãXNUMX è¡ã®ã³ãŒãããããã°ããå¿
èŠããªããªãããã°ãèŠã€ããã®ãéåžžã«ç°¡åã«ãªã£ãããšãããããŸããã Java ã«ã¯ãã®ããã®åªããããŒã«ããããŸãã ã³ãŒããæžãã ãã ã£ããããã£ãšæéããããããã©ãŒãããã®å質ãäœãã£ãã§ãããã
ãªãæ£åŒãªä»æ§ã䜿çšã§ããªãã£ãã®ã§ãããã? äžæ¹ã§ãããã§ã¯æ£ããå®è¡ã¯ããã»ã©éèŠã§ã¯ãããŸããã æ§é çãªããªã³ãã¢ãŠãã¯èª°ã«ãåã°ããªãã¯ããªã®ã§ããã¹ãŠã®å¥åŠãªç¶æ³ã§æ£ããåäœãããå¿ èŠã¯ãããŸããã§ããã ããã«éèŠãªã®ã¯ãé©åãªããŒã«ãæã£ãŠããªãã£ããšããäºå®ã§ãã ããã§ã¯ TLA+ ã¢ãã« ãã§ãã«ãŒã¯åœ¹ã«ç«ããªãããããµã³ãã«ãæåã§äœæããå¿ èŠããããŸãã
äžèšã®ä»æ§ã«ã¯ããã¹ãŠã®ä»æ§ã«å ±éããç¹åŸŽããããŸãã ã³ãŒããããé«ã¬ãã«ã§ãã ã©ã®èšèªã§ãå®è£ ã§ããŸãã ãããæžãã®ã«ã©ããªããŒã«ãæ¹æ³ã圹ã«ç«ã¡ãŸããã ãã®ä»æ§ãæžãã®ã«åœ¹ç«ã€ããã°ã©ãã³ã°ã³ãŒã¹ã¯ãããŸããã ãããŠããã¡ãããTLA+ ã§æ§é åå°å·ããã°ã©ã ãäœæããããã®å°çšã®èšèªãäœæããªãéãããã®ä»æ§ãäžèŠã«ããããŒã«ã¯ãããŸããã æåŸã«ããã®ä»æ§ã§ã¯ãã³ãŒããæ£ç¢ºã«ã©ã®ããã«èšè¿°ãããã«ã€ããŠã¯äœãè¿°ã¹ãŠãããããã®ã³ãŒããäœãè¡ããã«ã€ããŠã®ã¿è¿°ã¹ãŠããŸãã ã³ãŒãã«ã€ããŠèãå§ããåã«ãåé¡ããã£ããèããã®ã«åœ¹ç«ã€ä»æ§ãäœæããŸãã
ãã ãããã®ä»æ§ã«ã¯ä»ã®ä»æ§ãšã¯ç°ãªãç¹åŸŽããããŸãã ä»ã®ä»æ§ã® 95% ã¯å€§å¹ ã«çããããã·ã³ãã«ã§ãã
ããã«ããã®ä»æ§ã¯äžé£ã®ã«ãŒã«ã§ãã äžè¬ã«ãããã¯ä»æ§ãäžååã§ããããšã瀺ããŸãã äžé£ã®ã«ãŒã«ã®çµæãç解ããã®ã¯éåžžã«é£ãããããã«ãŒã«ã®ãããã°ã«å€ãã®æéãè²»ããå¿ èŠããããŸããã ãã ãããã®å Žåãããããè¯ãæ¹æ³ãèŠã€ãããŸããã§ããã
ç¶ç¶çã«å®è¡ãããããã°ã©ã ã«ã€ããŠå°ãè¿°ã¹ãŠãã䟡å€ããããŸãã ååãšããŠããããã¯ããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ãåæ£ã·ã¹ãã ãªã©ã§äžŠè¡ããŠåäœããŸãã ããããé ãæºäžã§ç解ã§ãã人ã¯ã»ãšãã©ããŸãããç§ããã®äžäººã§ã¯ãããŸãããããã€ãŠã¯ç解ã§ããŸããã ãããã£ãŠãTLA + ã PlusCal ãªã©ãäœæ¥ããã§ãã¯ããããŒã«ãå¿ èŠã§ãã
ã³ãŒããäœããã¹ããããã§ã«ç¥ã£ãŠããã®ã«ããªãä»æ§ãæžãå¿ èŠãããã®ã§ãããã? å®éãç§ã¯ãããç¥ã£ãŠãããšæã£ãã ãã§ãã ããã«ãä»æ§ã䜿çšãããšãéšå€è ãã³ãŒãã«ä»å ¥ããŠæ£ç¢ºã«äœãããã®ããç解ããå¿ èŠããªããªããŸãã ç§ã«ã¯ã«ãŒã«ããããŸããäžè¬çãªã«ãŒã«ã¯ååšãã¹ãã§ã¯ãããŸããã ãã¡ããããã®èŠåã«ã¯äŸå€ããããŸãããããç§ãåŸãå¯äžã®äžè¬çãªèŠåã§ããã³ãŒãã®åäœã®ä»æ§ã¯ãã³ãŒãã䜿çšãããšãã«ç¥ã£ãŠããå¿ èŠããããã¹ãŠã®ããšããŠãŒã¶ãŒã«äŒããå¿ èŠããããŸãã
ã§ã¯ãããã°ã©ããŒã¯æèã«ã€ããŠæ£ç¢ºã«äœãç¥ã£ãŠããå¿ èŠãããã®ã§ãããã? ãŸããä»ã®äººãã¡ãšåãããã«ãæžããªããã°ãèªåãèããŠããããã«ããèŠããŸããã ãŸããã³ãŒããæžãåã«èããå¿ èŠããããŸããã€ãŸããã³ãŒããæžãåã«æžãå¿ èŠããããŸãã ä»æ§ã¯ã³ãŒãã£ã³ã°ãéå§ããåã«èšè¿°ãããã®ã§ãã 誰ã§ã䜿çšãŸãã¯å€æŽã§ããã³ãŒãã«ã¯ä»æ§ãå¿ èŠã§ãã ãããŠããã®ã誰ããã¯ãã³ãŒããæžãããŠãã XNUMX ãæåŸã®ã³ãŒãã®äœæè èªèº«ã§ããå¯èœæ§ããããŸãã ä»æ§ã¯ã倧èŠæš¡ãªããã°ã©ã ãã·ã¹ãã ãã¯ã©ã¹ãã¡ãœãããããã«ã¯åäžã¡ãœããã®è€éãªã»ã¯ã·ã§ã³ã«ãå¿ èŠã§ãã ã³ãŒãã«ã€ããŠã¯å ·äœçã«äœãæžãã°ããã®ã§ãããã? ãããäœãããã®ããã€ãŸãããã®ã³ãŒãã䜿çšãã人ã«ãšã£ãŠäœã圹ç«ã€ã®ãã説æããå¿ èŠããããŸãã å Žåã«ãã£ãŠã¯ãã³ãŒãããã®ç®çãéæããæ¹æ³ãæå®ããå¿ èŠãããå ŽåããããŸãã ã¢ã«ãŽãªãºã ã®éçšã§ãã®ã¡ãœãããå®è¡ããå Žåããããã¢ã«ãŽãªãºã ãšåŒã³ãŸãã ãããããç¹å¥ã§æ°ãããã®ã§ããã°ãããããã€ã¬ãã«ãã¶ã€ã³ãšåŒã³ãŸãã ããã«ã¯åœ¢åŒçãªéãã¯ãããŸãããã©ã¡ããããã°ã©ã ã®æœè±¡ã¢ãã«ã§ãã
ã³ãŒãä»æ§ã¯å ·äœçã«ã©ã®ããã«æžãã°ããã®ã§ãããã? éèŠãªããšã¯ãã³ãŒãèªäœããã XNUMX ã€äžã®ã¬ãã«ã§ããå¿ èŠãããããšã§ãã ç¶æ ãšåäœã説æããå¿ èŠããããŸãã ã¿ã¹ã¯ã«å¿ èŠãªã ãå³å¯ã§ããå¿ èŠããããŸãã ã¿ã¹ã¯ã®å®è£ æ¹æ³ã®ä»æ§ãäœæããå Žåã¯ãç䌌ã³ãŒããŸã㯠PlusCal ã䜿çšããŠäœæã§ããŸãã æ£åŒãªä»æ§æžã®æžãæ¹ãåŠã¶å¿ èŠããããŸãã ããã«ãããéå ¬åŒãªã¹ãã«ã§ã圹ç«ã€å¿ èŠãªã¹ãã«ãåŸãããŸãã æ£åŒãªä»æ§ã®æžãæ¹ãã©ã®ããã«åŠã¹ãŸãã? ç§ãã¡ãããã°ã©ãã³ã°ãåŠãã ãšããç§ãã¡ã¯ããã°ã©ã ãæžããŠããããããã°ããŸããã ããã§ãåãã§ããä»æ§ãäœæããã¢ãã« ãã§ãã«ãŒã§ãã§ãã¯ãããã°ãä¿®æ£ããŸãã TLA+ ã¯æ£åŒãªä»æ§ã«ã¯æé©ãªèšèªã§ã¯ãªãå¯èœæ§ããããç¹å®ã®ããŒãºã«ã¯å¥ã®èšèªã®æ¹ãé©ããŠããå¯èœæ§ããããŸãã TLA+ ã®å©ç¹ã¯ãæ°åŠçæèãéåžžã«ããŸãæããããããšã§ãã
ä»æ§ãšã³ãŒãããªã³ã¯ããã«ã¯ã©ãããã°ããã§ãã? æ°åŠçæŠå¿µãšãã®å®è£ ãçµã³ä»ããã³ã¡ã³ãã®å©ããåããŠã ã°ã©ããæäœããå Žåãããã°ã©ã ã¬ãã«ã§ã¯ããŒãã®é åãšãªã³ã¯ã®é åãååšããŸãã ãããã£ãŠããããã®ããã°ã©ãã³ã°æ§é ã«ãã£ãŠã°ã©ããã©ã®ããã«å®è£ ãããããæ£ç¢ºã«èšè¿°ããå¿ èŠããããŸãã
äžèšã®ãããããã³ãŒããèšè¿°ããå®éã®ããã»ã¹ã«ã¯åœãŠã¯ãŸããªãããšã«æ³šæããŠãã ããã ã³ãŒããæžããšããã€ãŸã XNUMX çªç®ã®ã¹ããããå®è¡ãããšãããããã°ã©ã ã培åºçã«èããŠèããå¿ èŠããããŸãã ãµãã¿ã¹ã¯ãè€éãŸãã¯èªæã§ã¯ãªãããšãå€æããå Žåã¯ããã®ä»æ§ãèšè¿°ããå¿ èŠããããŸãã ãã ããããã§ã¯ã³ãŒãèªäœã«ã€ããŠè©±ããŠããã®ã§ã¯ãããŸããã ããããããã°ã©ãã³ã°èšèªãããããæ¹æ³è«ã䜿çšã§ããŸããéèŠãªã®ã¯ããããã«é¢ãããã®ã§ã¯ãããŸããã ãŸããäžèšã®ãããã«ãã£ãŠããã³ãŒãã®ãã¹ããšãããã°ãäžèŠã«ãªããŸãã æœè±¡ã¢ãã«ãæ£ããèšè¿°ãããŠããŠãããã®å®è£ ã«ãã°ãååšããå¯èœæ§ããããŸãã
ä»æ§ã®äœæã¯ãã³ãŒãã£ã³ã° ããã»ã¹ã®è¿œå ã®ã¹ãããã§ãã ãã®ãããã§ãããå°ãªãåŽåã§å€ãã®ãšã©ãŒãæ€åºã§ããããã«ãªããŸããããã¯ãAmazon ã®ããã°ã©ããŒã®çµéšããããã£ãŠããŸãã ä»æ§ãããã°çªçµã®è³ªãé«ããªããŸãã ã§ã¯ããªãç§ãã¡ã¯ãããã䜿ããã«éããããšãå€ãã®ã§ãããã? æžãã®ã倧å€ã ããã ãããŠãæžãããšã¯é£ããã§ãããªããªãããã®ããã«ã¯èããå¿ èŠããããèããããšãé£ããããã§ãã èªåã®èããåœãã»ãããã£ãšç°¡åã§ãã ããã§ãã©ã³ãã³ã°ã«äŸããããšãã§ããŸããèµ°ããªããšãèµ°ãé床ãé ããªããŸãã çèãéããŠæžãç·Žç¿ãããå¿ èŠããããŸãã ç·Žç¿ãå¿ èŠã§ãã
ä»æ§ãééã£ãŠããå¯èœæ§ããããŸãã ã©ããã§ééããç¯ããããèŠä»¶ãå€æŽããããããããã¯æ¹åãå¿ èŠãªå¯èœæ§ããããŸãã 誰ãã䜿çšããã³ãŒãã¯å€æŽããå¿ èŠããããããé ããæ©ããä»æ§ã¯ããã°ã©ã ãšäžèŽããªããªããŸãã ãã®å Žåãçæ³çã«ã¯ãæ°ããä»æ§ãäœæããã³ãŒããå®å šã«æžãçŽãå¿ èŠããããŸãã ãããªããšããã人ã¯ããªãããšãç§ãã¡ã¯ããç¥ã£ãŠããŸãã å®éã«ã¯ãã³ãŒãã«ããããé©çšããå Žåã«ãã£ãŠã¯ä»æ§ãæŽæ°ããŸãã é ããæ©ããå¿ ããããªãã®ã§ããã°ããªãä»æ§æžãæžãå¿ èŠãããã®ã§ãããã? ãŸããã³ãŒããç·šéãã人ã«ãšã£ãŠãä»æ§å ã®ãã¹ãŠã®äœåãªåèªã¯éã®äŸ¡å€ãããããã®äººã¯ããããããªãèªèº«ã§ããå¯èœæ§ããããŸãã ã³ãŒããç·šéãããšãã«ååãªä»æ§ãåŸãããŠããªããšèªåã責ããããšããããããŸãã ãããŠãã³ãŒããããä»æ§ãæžããŸãã ãããã£ãŠãã³ãŒããç·šéããå Žåã¯ãåžžã«ä»æ§ãæŽæ°ããå¿ èŠããããŸãã 第 XNUMX ã«ããªããžã§ã³ãäžãããã³ã«ã³ãŒãã¯æªåããèªã¿åããä¿å®ããŸããŸãé£ãããªããŸãã ããããšã³ããããŒã®å¢å ã§ãã ããããä»æ§ããå§ããªããšãæžããã¹ãŠã®è¡ãç·šéã«ãªããã³ãŒãã¯æåããæ±ãã«ãããèªã¿ã«ãããªããŸãã
èšã£ãããã«
TLA + ãš PlusCal ã«ã€ããŠè©³ããã¯ãç¹å¥ãª Web ãµã€ããã芧ãã ãããç§ã®ããŒã ããŒãžããã¢ã¯ã»ã¹ã§ããŸãã
ããã¯ç¿»èš³ã§ããããšã«æ³šæããŠãã ããã ã³ã¡ã³ããæžããšãã¯ãæçš¿è ãã³ã¡ã³ããèªãããã§ã¯ãªãããšã«æ³šæããŠãã ããã èè ãšæ¬åœã«è©±ãããå Žåã¯ã2019 幎 11 æ 12 ïœ 2019 æ¥ã«ãµã³ã¯ãããã«ãã«ã¯ã§éå¬ããã Hydra XNUMX ã«ã³ãã¡ã¬ã³ã¹ã«åœŒãåå ããŸãã ãã±ããã¯è³Œå ¥ã§ããŸã
å ¬åŒãŠã§ããµã€ãäžã§ .
åºæïŒ habr.com