ããããŒãªãã»ã©ã確ãã«ããã§ãã¹ãŠå°éå¯èœããã§ããïŒ 2-2-2ãäžç¶ãããããã£ãŠèããã°è¯ãã®ã§ããã⊠ããã
utf8::decodeãå€ã`\W{3}`ãšããæããã£ããâŠïŒããã¯ãºã«ãâŠ(èªãèšè)ãããããŸã£ããæãã€ããªãã£ããªãã / ã©ã¡ããåãçµã¿ç²æãããé¢çœãåé¡ã§æ¥œãããŸãããããããšãããããŸããïŒ / Perlbatross in YAPC::Hakodate 2024ã®çµæçºè¡šãšè§£èª¬ #yapcjapan - KAYAC Engineers' Blog #yapcjapan#perlbatross#golf
ããã«ã¡ã¯ïŒ æè¡éšã®è°·èã§ãã å»ã10/5ã«YAPC::Hakodate 2024ãéå¬ãããŸããããããã§ãããïŒ yapcjapan.org 以åã«åç¥ããããã«ä»åã®YAPCãã³ãŒããŽã«ãã³ã³ãã¹ãPerlbatrossãéå¬ããŸããã techblog.kayac.com ãã®ãšã³ããªã§ã¯çµæçºè¡šãšãäºå解çããŒã ã®å·æ·»(@acidlemon)ãã瀟å æç解ã®çŽ¹ä»ãšè§£èª¬ããå±ãããŸãã Perlbatrossã¯çŸåšã³ãŒãã®æçš¿ãæ€èšŒã¯ã§ãããã®ã®ãã©ã³ãã³ã°ã«èŒããªãã¢ãŒãã«ãªã£ãŠãããŸããããš1é±éçšåºŠã¯ãã®ããã«ããŠãããŸãã®ã§ããããã³ããæ¹ããã¡ãã£ãšè©ŠããŠã¿ãããªãšããæ¹âŠ
3æ¬xé«ã3ã§3è²2åãã€ãã§ãã¹ãŠè§£æã§ãããšããŠãã§ã¯Næ¬x é«ãHã§Cè²Måãã€ã ã£ãå Žåã«ã©ããªã£ãŠããã ãããããšãèãå§ãããšçµãããªãã
ããã°ã©ã ã§æ±ããããšããå Žåãã©ãããããŒã¿è¡šçŸããã°è¯ãã®ããªãâŠãbitboardã¿ãããªã®ã§1æã§é·ç§»å¯èœãªãã®ãåæã§ãããããã ãããããšãèããã ã©ãã1æã®éžæè¢ã¯3*2ã®6éãããç¡ãã ãããªã«é£ããèããå¿ èŠãªãïŒ
ãããã900 * 900ã®äžã§1æã§é·ç§»ã§ãããåŠãã®å€å®ãã§ããã°ã FloydâWarshall algorithm ã§å šãã¿ãŒã³éã®æçææ°ãæ±ããããã ãããïŒ 2ãã¿ãŒã³éã®æçã¯Dijkstraãšãã§ã ããããå šéšãç¹ãã£ãŠããã©ãããåãã£ãŠããªããã© æ°åŠçãªèšŒæã¯ã§ãããã ãããâŠ
ãŸãç¶æ æ°ã¯å¹Ÿã€ããã®ãïŒ 2åãã€3è²ãäžåã«äžŠã¹ãå Žåã6C2 * 4C2 * 2C2 ã§90éããäž²ã«ç©ãæ°ã¯åé¡éã§ã¯å¿ ã 3-3-0, 3-0-3, 0-3-3, 2-2-2 ã®4éãã®ã©ããã ã£ãã å šéããèãããšããã« 1-2-3 ãšãã®äžŠã¹æ¿ã6éããå ãã£ãŠ10éãããªã®ã§å šéšã§ 90 * 10 = 900éãããæ£ããïŒ
ãã ããå±ã®ã²ãŸã€ã¶ãããšããããºã«ã劻ãèŠã€ããŠãé¢çœããã ã£ãã®ã§è²·ã£ãŠã¿ãã(ç¥è²ã«ããªãããªïŒãšæã£ããåã©ããã¡ã¯å£åãã¶ãæããŠéã¶ã ãã ã£ãâŠã) be-en.co.jp/products/bog... ã«ãŒã«ã¯ç°¡åã§ãé«ã3ã®3æ¬ã®äž²ã«ç©ãŸãã2åãã€3è²ã®ã ãããã1åãã€ä»ã®äž²ã«ç§»åã㊠ããç¶æ ããããç¶æ ã«å€ãããããããšãããã®ãå梱ã®åé¡éã«ã¯é£æ床ããšã«52åã®ãã®ãèŒã£ãŠããã æé«é£åºŠã®ãã®ã¯14æãã ã£ãã®ã ã æãããŠãããæé·ãªã®ã ãããïŒãšããçåã湧ããã®ã§èããŠã¿ããã
ïŒè²ã®ã ãããïŒã€ãã€åãããŠæ±ºãããã䞊ã³ã«ç§»ããããããºã«ïŒã¹ãã³ãšèœã¡ãæèŠãããã«ãªããã€ã³ããªã¢ã«ããããããªãããããã ããã®ããºã«ã§ãã åé¡ã¯52åã§ãå šåé¡ã«æé ããšã®è§£çãæ²èŒã
5000å è°åžæ¬²ããïŒïŒïŒ
â²7å æ©