Home - hakatashi/decathlon GitHub Wiki
ðåå è ããã¥ã¢ã«
TSGå皮競æã¯ãTSGã«é¢é£ããç«¶æã1æ¥ã§10çš®é¡è¡ãããã®ç·ååŸç¹ã§TSGã®çè ãæ±ºããã€ãã³ãã§ãã
1ç«¶æã ãã®åå ãªã©ãæè¿ã§ããæéãåãã°ãã²åå ããŠãã ããïŒ
ãã®ããã¥ã¢ã«ã¯ãåå ããéã«åèã«ãªãæ å ±ãäžç®ã§åãããã1ã€ã®ããŒãžã«ãŸãšãããã®ã§ããå šéšç¢ºèªããŠããå¿ èŠã¯ãããŸãããããã®äžã®2ã»ã¯ã·ã§ã³ã¯èªãã§ããããšãããããããŸãã
ð°æ°å ¥éšå¡ã»åå¿è ã®æ¹ãž
ãã®ã€ãã³ãã¯TSGã®æ®æ®µã®æŽ»åã®ææãåºãç«¶æãªã®ã§ãæ°å ¥éšå¡ã®æ¹ã¯ããªãäžå©ãããããŸãããã§ããããŸã£ããã®åå¿è ã§ãç«¶æã«ã¯åå ã§ããããã«å·¥å€«ããŠããŸãã
ããããã®ç«¶æèª¬æã®ãð°åå¿è åããã³ãããšããæ¬ã«å¿ èŠãªæ å ±ãèŒã£ãŠããã®ã§ããããåèã«ãããã詊ããŠã¿ãŠãã ãããäœãããããªãããšãå°ãã§ãããã°ãSlackã®#decathlonãŸãã¯#sandboxã«æçš¿ããŠãããã°ãTSGéšå¡ãå¯èœãªç¯å²ã§ãµããŒãããŸãã
ãŸããããã°ã©ãã³ã°ãè§Šã£ãããšã®ãªãæ¹ã§ããç¹ã«ç¬¬6ç«¶æãITã¯ã€ãºããšç¬¬9ç«¶æãã¿ã€ãã³ã°ãã¯æ¥œããã§ããããããšæãã®ã§ããã²æéãçž«ã£ãŠåå ããŠãã ããïŒ
ðãããããæºåããŠãããšè¯ãããš
åç«¶æã®ãåœæ¥ãŸã§ã«ãã£ãŠãããšè¯ããããããªãããšããŸãšããŸããã
- CTF
- CTFãåããŠã®å Žåã¯ãScrapboxã®ãCTFãã®ããŒãžãäºåã«ç¢ºèªããŠãé°å²æ°ãã€ããã§ãããŸããããåžžèšCTFã®åé¡ãããã€ãè§£ããŠã¿ãã®ãOKã§ãã
- CTF (Pwn) ã§ã¯ãã€ããªãã¡ã€ã«ãæž¡ãããŸãããã€ããªã詳ããè§£æãããå Žåãäºåã«GhidraãIDAãã€ã³ã¹ããŒã«ããŠããããšãããããããŸãã
- SQLã³ã³ãã¹ã
- ç·Žç¿çšããŒãžãå ¬éãããŠããŸããããããããã¬ã€ããŠãã·ã¹ãã ã®äœ¿çšã«åé¡ããªãã確èªããŠãããŠãã ããã
- SQLãè§Šãã®ãåããŠã®å Žåã¯ããªã³ã©ã€ã³ã®ææãªã©ãåèã«åºæ¬ãå匷ããŠãããŸããããäŸãã°ã以äžã®ãããªææãããããã§ãã
- åé¡åœ¢åŒã®ãã£ã¬ã³ãžãè§£ãããå Žåã¯SQLabãããããã§ãã
- éåã³ã³ãã¥ãŒãã£ã³ã°
- ç·Žç¿çšããŒãžãå ¬éãããŠããŸããããããããã¬ã€ããŠãã·ã¹ãã ã®äœ¿çšã«åé¡ããªãã確èªããŠãããŠãã ããã
- ãã®ç«¶æã§ã¯ããã°ã©ãã³ã°èšèªPythonãšãQiskitãšããéåã³ã³ãã¥ãŒãã£ã³ã°ã®ã©ã€ãã©ãªã䜿çšããŸããäºåã«ãããã䜿çšã§ããç°å¢ãæŽããŠããããšã§åœæ¥ã®ãããã°ã容æã«ãªãã§ãããã
- ãã®ç«¶æã§åºé¡ãããéååè·¯ã¯ããåºæ¬çãªãã®ã§ããäºåã«éåã³ã³ãã¥ãŒã¿ãŒã®åºç€ãæããŠããã ãã§ãåŸç¹ã§ããå¯èœæ§ãé«ãŸãã§ãããã
- ææãšããŠã¯ãæ±äº¬å€§åŠçŽ ç²åç©çåœéç ç©¶ã»ã³ã¿ãŒãçºè¡ããéåã³ã³ãã¥ãŒãã£ã³ã°ã»ã¯ãŒã¯ããã¯ãããããã§ãã
- ITã¯ã€ãº
- éå»åãå ¬éãããŠããŸããåœæ¥ã®åé¡ã®åå以äžã¯ãã®ãªã¹ãã®äžããåºé¡ãããäºå®ã§ãã
- ããããã軜ãç®ãéããŠããããäºç¿ããŠãããšæå©ã§ãã
- ç«¶æããã°ã©ãã³ã° (æ©è§£ã)
- èªåãæ®æ®µç«¶æããã°ã©ãã³ã°ãããç°å¢ãæŽããŠãããŸãããã
- ããã°ã©ãã³ã°ãåããŠã®å Žå㯠AtCoder Programming Guide for beginners ã§äºåã«åŠç¿ããŠãããŸãããã
- ç«¶æããã°ã©ãã³ã°ãåããŠã®å Žå㯠AtCoder Beginners Selection ã§äºåã«ç·Žç¿ããŠãããŸãããã
- ãããŸã§ã§ãããªãåœæ¥1ã2åã¯å¿ ãè§£ããã¯ãã§ãïŒ
- 蚌æã³ã³ãã¹ã
- æ¬çªãšåãã·ã¹ãã ãçšããç·Žç¿çšããŒãžãå ¬éãããŠããŸããããããããã¬ã€ããŠãã·ã¹ãã ã®äœ¿çšã«åé¡ããªãã確èªããŠãããŠãã ããã
- ãã®ã³ã³ãã¹ãã§ã¯å®çèšŒææ¯æŽããã°ã©ãã³ã°èšèªãLean 4ããçšããŠç«¶æãè¡ããŸãããã¥ãŒããªã¢ã«ãªã©ãèªãã§äºåã«æ
£ã芪ããã§ãããšæå©ã§ãã
- ãã¥ãŒããªã¢ã«ã®éå ¬åŒæ¥æ¬èªèš³: Theorem Proving in Lean 4 æ¥æ¬èªèš³
- ãŸããä»åã®ã³ã³ãã¹ãã·ã¹ãã ã¯ãã€ã³ãªãã»ãã€ã倧åŠãã¥ãã»ã«ãã«ããå
¬éããŠãããLean Game Serverããšåããã®ã䜿çšããŸãã
- ãã¡ããäºåã«éãã§ãããšæ¬çªã§æå©ã«ç«ã¡åããŸãã
- ã¿ã€ãã³ã°
- ç·Žç¿çšããŒãžãå ¬éãããŠããŸããããããããã¬ã€ããŠãã·ã¹ãã ã®äœ¿çšã«åé¡ããªãã確èªããŠãããŠãã ããã
- ã³ãŒããŽã«ã
- ç·Žç¿çšããŒãžãå ¬éãããŠããŸããããããããã¬ã€ããŠãã·ã¹ãã ã®äœ¿çšã«åé¡ããªãã確èªããŠãããŠãã ããã
â²ïžã¿ã€ã ã¹ã±ãžã¥ãŒã«
åœæ¥ãSlackã®#decathlonãã£ã³ãã«ã§ Google Meet ã®ã¢ãã¬ã¹ãå ±æããŸããæéã«ãªã£ãããã¡ãã«åå ããŠãã ããã
- 13:00-13:15 ãªãŒããã³ã°
- 13:15-15:45 第1ïœ5ç«¶æ CTF + SQLã³ã³ãã¹ã + éåã³ã³ãã¥ãŒãã£ã³ã°
- CTF (Pwn), CTF (Web), CTF (Crypto), SQLã³ã³ãã¹ã, éåã³ã³ãã¥ãŒãã£ã³ã° ãåæã«éå¬ããŸã
- 16:00-16:20 第6ç«¶æ ITã¯ã€ãº
- 16:30-17:00 第7ç«¶æ ç«¶æããã°ã©ãã³ã° (æ©è§£ã)
- 17:10-17:40 第8ç«¶æ 蚌æã³ã³ãã¹ã
- 17:45-18:15 ITã¯ã€ãº æ¡ç¹çµæçºè¡š&解説
- 18:15-18:25 第9ç«¶æ ã¿ã€ãã³ã° (æ¥æ¬èª)
- 18:30-19:00 第10ç«¶æ ã³ãŒããŽã«ã
- 19:00-19:10 çµæçºè¡š
ðããŒã¿ã«ãµã€ã
ç«¶æã¯ããŒã¿ã«ãµã€ãäžã§è¡ããŸããäºåã«ä»¥äžã®ã¢ãã¬ã¹ã«ã¢ã¯ã»ã¹ããŠãTSGã®SlackãéããŠãã°ã€ã³ãã§ããããšã確èªããŠãããŠãã ããã
https://decathlon.hakatashi.com/
ãã°ã€ã³æ¹æ³
ããŒãžã®å³äžã«ããLOGINãã¿ã³ãæŒããŸãã
å¥ãŠã£ã³ããŠãéããŸããå³äžã®ã¯ãŒã¯ã¹ããŒã¹ããTSGãã«ãªã£ãŠããã®ã確èªããäžã§ãèš±å¯ããããæŒããŠãã ããã(ãTSGãã§ãªãå Žåã¯éžæããŠãã ãã)
ããŒãžã®å³äžãèªåã®ã¢ã€ã³ã³ã«ãªãã°ãã°ã€ã³æåã§ãã
â»ç»é²ããããŠãŒã¶ãŒåãšã¢ã€ã³ã³ã¯ã€ã³ã¿ãŒãããäžã§å ¬éãããŸããå ¬éãããããªãå Žåã¯Settingsããå ¬éããŠãè¯ãååãšã¢ã€ã³ã³ã«å€æŽããŠãã ããã
ãšã©ãŒ
ãã®ãããªãšã©ãŒãåºãå Žåã¯ãäžæçãªãã®ãªã®ã§ãããŒãžããªããŒãããŠãã ããã
ðé話ã«ã€ããŠ
Google Meet
- åœæ¥ãSlackã®#decathlonãã£ã³ãã«ã§ Google Meet ã®ã¢ãã¬ã¹ãå ±æããŸãã
- ãã®é話ã§ã¯äž»å¬ã§ããhakatashiãã€ãã³ãã®é²è¡ãéèŠãªã¢ããŠã³ã¹ãªã©ãè¡ãã®ã§ãã€ãã³ãåå äžã¯å¯èœãªéãéããŠãããŠãã ããã
- ã€ãã³ãã«é¢ãã質åãªã©ä»¥å€ã§ã¯ãã€ã¯ããã¥ãŒãããŠãããŠãã ããã
Discord
- ã€ãã³ãåå äžãGoogle Meet ãšåæã«TSGã®Discordã«æ¥ç¶ããŠãéè«ãªã©ãè¡ã£ãŠæ§ããŸããã
- äž»å¬ã®hakatashiãéè«ã«åå ããäºå®ã§ãã
- æåŸ ãªã³ã¯ã¯Slackã®#sandboxãã£ã³ãã«ã®åºå®ãªã³ã¯ã«æžããŠãããŸãã
- èªç±ã«ãã£ã³ãã«ãäœããããã«ãªã£ãŠããã®ã§ã人ãå€ããªã£ããããå Žåã¯é©åœã«åå²ããŠãã ããã
â ïžã€ãã³ãäžã«è³ªåãªã©ãããå Žå
以äžã®ããããã®æ¹æ³ã§äž»å¬ã®hakatashiã«é£çµ¡ããŠãã ããã
- ã€ãã³ãé²è¡çšã® Google Meet ã§ãã€ã¯ãã¢ã³ãã¥ãŒãããhakatashiã«å£°ãããã
- Slackã®#decathlonãã£ã³ãã«ã§ãã@hakatashiãã®ã¡ã³ã·ã§ã³ä»ãã§ã¡ãã»ãŒãžãæçš¿ãã
åªå 床ãé«ããªãå Žåã¯ããã以å€ã®æ¹æ³ã§ç¥ãããŠã倧äžå€«ã§ã (Google Meetã®Q&Aæ©èœãªã©)
ðïžç«¶æèª¬æ
第1ç«¶æ CTF (Pwn)ã第2ç«¶æ CTF (Web)ã第3ç«¶æ CTF (Crypto)
宿œæŠèŠ
- 第1ç«¶æãã第5ç«¶æãŸã§ã¯åæã«è¡ãããŸããäžããããæéãèªç±ã«äœ¿ã£ãŠããŸãã¯èªåã®åŸæãªåéã«åãçµãã§ã¿ãŠãã ããã
- CTFã¯ãµã€ããŒã»ãã¥ãªãã£ã«é¢é£ããæè¡ãçšããããºã«ã§ããåé¡ããšã«ããŸããŸãªã¿ã¹ã¯ãè§£ããæçµçã«ãã©ã°ãšåŒã°ããæååãæåºãããšã¯ãªã¢ãšãªããŸãã
- ç«¶æã¯å¥éèšããç«¶æããŒãžäžã§è¡ãããŸããç«¶æã«å
ç«ã£ãŠããããããŠãŒã¶ãŒç»é²ãããŠãããŠãã ããã
- ç«¶æããŒãžã®å³äžã®RegisterãããŠãŒã¶ãŒç»é²ã§ããŸãã
ð°åå¿è åããã³ã
- ç«¶æããŒãžã«è¡šç€ºãããå顿ã«åå¿è åãã®ãã³ãã衚瀺ãããŸãããã²ç¢ºèªããŠãã ããã
- CTFãåããŠã®å Žåã¯ãScrapboxã®CTFã®ããŒãžãäºåã«ç¢ºèªããŠãé°å²æ°ãã€ããã§ãããŸããããåžžèšCTFã®åé¡ãããã€ãè§£ããŠã¿ãã®ãOKã§ãã
- Pwnåé¡ã§ã¯ãã€ããªãã¡ã€ã«ãæž¡ãããŸãããã€ããªã詳ããè§£æãããå Žåãäºåã«GhidraãIDAãã€ã³ã¹ããŒã«ããŠããããšãããããããŸãã
ã«ãŒã«
- ä»åã®CTFã¯å人æŠã§ããã¢ã«ãŠã³ããå ±æããããæ å ±ãå ±æãããããªãã§ãã ããã
- ã¹ã³ã¢ãµãŒããŒãæ»æããªãã§ãã ããã
ç²åŸåŸç¹ã®èšç®æ¹æ³
- ç²åŸåŸç¹ã¯ããããã®åé¡ããšã«ç¬ç«ã«èšç®ãããŸãã
- æåºãæ©ãé çªã«é äœãä»ããŸãã
- åé¡ãè§£ããå Žåããã®ç«¶æã®ç²åŸåŸç¹ã¯ 100 à 0.99 ^ [æåºé äœ (0-indexed)] ç¹ã§ãã
- åé¡ãè§£ããªãã£ãå Žåããã®ç«¶æã®ç²åŸåŸç¹ã¯0ç¹ãšãªããŸãã
éä¿¡ããã¹ã³ã¢ã«ã€ããŠ
åé¡ãè§£ããå ŽåãããŒã¿ã«ãµã€ãã§åçéä¿¡æå»ãå ¥åããŠãã ãããåçéä¿¡æå»ã確èªããã«ã¯ããã°ã€ã³ããç¶æ ã§ https://ctf.hakatashi.com/user ã«ã¢ã¯ã»ã¹ããŠãSolvesã®æ¬ãèŠãŠãã ããã
é¢é£Slackãã£ã³ãã«
- #sig-ctf: TSGã§ã¯å®æçã«æå¿ãããŒã ãçµã¿ãããŸããŸãªãªã³ã©ã€ã³ã®CTF倧äŒã«åå ããŠããŸããç¹ã«SECCONãªã©ã®å€§ããªå€§äŒã§ã¯ã¡ã³ããŒå šå¡ãå šåã§å€§äŒã«åãçµãã§ãããCTFå宿ãªã©ãããŸã«è¡ãããŸããèå³ãããã°ãã²åå ããŠã¿ãŠãã ãã!
第4ç«¶æ SQLã³ã³ãã¹ã
宿œæŠèŠ
- SQLãçšããŠæå®ãããããŒã¿ãäœæããç«¶æã§ãã
- ããŒã¿ããŒã¹ã«å¯ŸããŠSQLã¯ãšãªãæããããšã§ãæå®ãããããŒã¿ãåºåããŠãã ããã
â ïžçæAIã®äœ¿çšã«ã€ããŠ
-
æ¬ç«¶æã«ãããŠãçæAIã®äœ¿çšã¯ååãšããŠçŠæ¢ã§ãããã ããã³ãŒãè£å®ããŒã«ãã³ãŒããæžãã¹ããŒããäžããçšéã§çšããå Žåãé€ããŸãã
-
ãçæAIãããã³ãã³ãŒãè£å®ããŒã«ãã®å®çŸ©ã¯ãAtCoderçæAI察çã«ãŒã« - 20241206ç ã«æºæ ãããã®ãšããŸãã
ð° åå¿è åããã³ã
- ç·Žç¿çšããŒãžãå ¬éãããŠããŸããããããããã¬ã€ããŠãã·ã¹ãã ã®äœ¿çšã«åé¡ããªãã確èªããŠãããŠãã ããã
- SQLãè§Šãã®ãåããŠã®å Žåã¯ããªã³ã©ã€ã³ã®ææãªã©ãåèã«åºæ¬ãå匷ããŠãããŸããããäŸãã°ã以äžã®ãããªææãããããã§ãã
- åé¡åœ¢åŒã®ãã£ã¬ã³ãžãè§£ãããå Žåã¯SQLabãããããã§ãã
ç²åŸåŸç¹ã®èšç®æ¹æ³
- æåºãæ©ãé çªã«é äœãä»ããŸãã
- åé¡ãè§£ããå Žåããã®ç«¶æã®ç²åŸåŸç¹ã¯ 100 à 0.99 ^ [æåºé äœ (0-indexed)] ç¹ã§ãã
- åé¡ãè§£ããªãã£ãå Žåããã®ç«¶æã®ç²åŸåŸç¹ã¯0ç¹ãšãªããŸãã
第5ç«¶æ éåã³ã³ãã¥ãŒãã£ã³ã°
宿œæŠèŠ
- éåã³ã³ãã¥ãŒãã£ã³ã°ã®èœåãç«¶ãç«¶æã§ãã
- æå®ããã課é¡ãããªãããšãã§ããéååè·¯ãçµã¿ãPythonã³ãŒããšããŠæåºããããšãã§ããã°ã¯ãªã¢ãšãªããŸãã
â ïžçæAIã®äœ¿çšã«ã€ããŠ
-
æ¬ç«¶æã«ãããŠãçæAIã®äœ¿çšã¯ååãšããŠçŠæ¢ã§ãããã ããã³ãŒãè£å®ããŒã«ãã³ãŒããæžãã¹ããŒããäžããçšéã§çšããå Žåãé€ããŸãã
-
ãçæAIãããã³ãã³ãŒãè£å®ããŒã«ãã®å®çŸ©ã¯ãAtCoderçæAI察çã«ãŒã« - 20241206ç ã«æºæ ãããã®ãšããŸãã
ð°åå¿è åããã³ã
- ç·Žç¿çšããŒãžãå ¬éãããŠããŸããããããããã¬ã€ããŠãã·ã¹ãã ã®äœ¿çšã«åé¡ããªãã確èªããŠãããŠãã ããã
- ãã®ç«¶æã§ã¯ããã°ã©ãã³ã°èšèªPythonãšãQiskitãšããéåã³ã³ãã¥ãŒãã£ã³ã°ã®ã©ã€ãã©ãªã䜿çšããŸããäºåã«ãããã䜿çšã§ããç°å¢ãæŽããŠããããšã§åœæ¥ã®ãããã°ã容æã«ãªãã§ãããã
- ãã®ç«¶æã§åºé¡ãããéååè·¯ã¯ããåºæ¬çãªãã®ã§ããäºåã«éåã³ã³ãã¥ãŒã¿ãŒã®åºç€ãæããŠããã ãã§ãåŸç¹ã§ããå¯èœæ§ãé«ãŸãã§ãããã
- ææãšããŠã¯ãæ±äº¬å€§åŠçŽ ç²åç©çåœéç ç©¶ã»ã³ã¿ãŒãçºè¡ããéåã³ã³ãã¥ãŒãã£ã³ã°ã»ã¯ãŒã¯ããã¯ãããããã§ãã
ã«ãŒã«
- ç«¶ææéãéå§ãããšãç«¶æãµã€ãäžã«åé¡ãåºé¡ãããŸãã
- æ¬ç«¶æã§ã¯é ç¹ã®ç°ãªãè€æ°ã®å°åãåºé¡ãããŸãã
- åé¡ããŒãžäžã®æç€ºã«åŸã£ãŠPythonã®ã³ãŒããæåºããŠãã ããã
ç²åŸåŸç¹ã®èšç®æ¹æ³
- åé¡ããŒãžäžã«åå°åã®é ç¹ãèšèŒãããŠããŸãã
- æåºããã³ãŒãã®å®è¡çµæãæ£ããå Žåããã®é ç¹ã®åŸç¹ãç²åŸã§ããŸãã
é¢é£Slackãã£ã³ãã«
- #sig-qcon: TSGã§ã¯éåç³»ã®ã³ã³ãã¹ãã«åå ããŠããŸããTSGãšããŠããŒã æŠã«åå ããããšãããã®ã§ãåå¿è ã®äººãçµéšè ã®äººãæ°è»œã«èŠããŠã¿ãŠãã ãã!
第6ç«¶æ ITã¯ã€ãº
宿œæŠèŠ
- TSGã§å®æçã«éå¬ãããŠããããITã¯ã€ãºãã顿ã«ããããŒããŒãã¹ãã§ãã
- ã€ã³ã¿ãŒããããããã°ã©ãã³ã°ãªã©ãã²ãããITãã«é¢é£ããåšèŸºç¥èãåãå°åãåºé¡ãããŸãã
- éå»åãã40åãæ°èŠäœæããåé¡ã20åã®èš60åãšãè¿äŒŒå€åé¡1åãåºé¡ãããŸãã
- éå»åã¯ãã¡ããã確èªããããšãã§ããŸã (çŽ2800å)ã
- éå»åã¯ãã©ãŒã ã§ã®åºé¡ã«é©ããåœ¢ã«æ¹é¡ãããããšããããŸãã
- éå»åã®ãã¡20åã¯ãã1幎éã§åºé¡ãããåé¡ (åé¡2791ïœ) ããåºé¡ãããŸãã
- äºåã®äºç¿ã察çã«å¶éã¯ãããŸããã
- ç«¶æçµäºåŸãäœåè ãæ¡ç¹ãè¡ããŸããæ¡ç¹ãçµäºããããšãGoogleãã©ãŒã äžã§åŸç¹ãå ¬éãããŸããããã«èšèŒããŠããç¹æ°ãå ¥åããŠãã ããã
ð°åå¿è åããã³ã
- ãã®ã¯ã€ãºã®åºé¡ç¯å²ã¯ãã€ã³ã¿ãŒããããITäŒæ¥ã«ã€ããŠãªã©ããããšåºãã§ããããã°ã©ãã³ã°ã®çµéšã¯ãããŸã§é¢ä¿ãªãã®ã§ãåå¿è ã§ãæ°è»œã«åå ã§ãããšæããŸãã
- åé¡ã®å€ãã¯éå»åããåºé¡ãããã®ã§ãäºåã®äºç¿ãæå¹ã§ãã
ã«ãŒã«
- ç«¶æéå§ãšåæã«ãã¯ã€ãºåççšã®Googleãã©ãŒã ã®ãªã³ã¯ãå ±æãããŸãããã©ãŒã ã«ã¢ã¯ã»ã¹ããå¶éæé以å ã«åé¡ãè§£ããŠæåºããŠãã ããã
- æ€çŽ¢ã¯çŠæ¢ã§ããæ¥µåé ã®äžã«ããç¥èã®ã¿ã䜿ã£ãŠè§£ããŠãã ããã
ç²åŸåŸç¹ã®èšç®æ¹æ³
- é ç¹ã¯çŽ ç¹ã120ç¹ãé äœç¹ã80ç¹ã®200ç¹æºç¹ã§ãã
- çŽ ç¹ã¯1å2ç¹ã§120ç¹æºç¹ã§ãã
- é äœç¹ã¯ 80 à 2/(é äœ+1) ç¹ã§ãã (1-indexed)
- çŽ ç¹ã®é«ãé ã«é äœãã€ããŸãã
- çŽ ç¹ãåçã®å Žåã¯è¿äŒŒå€åé¡ã®è¿ãé ã«é äœãã€ããŸãã
- è¿äŒŒå€åé¡ãåçã®å Žåã¯åçéä¿¡æå»ã®æ©ãé ã«é äœãã€ããŸãã
æ¡ç¹åºæº
- æããã«è¡šèšã誀ã£ãŠãããã®ã¯ãå°ããªãã¹ã§ãã£ãŠã誀çãšããŸãã (GoogleâGogle ãªã©)
- éç§°ã»ç¥ç§°ãªã©ã®äžè¬çãªè¡šèšããã¯æ£è§£ãšããŸãã(Amazon.com, Inc.âã¢ããŸã³ç€Ÿ ãªã©)
- 挢å衚èšã¯å¿ èŠãããŸããã
- æ±æŽäººåã¯ãã«ããŒã ã®ã¿ãæ£è§£ãšããŸãã
- 西æŽäººåã¯ãã¡ãŒã¹ãããŒã ã®ã¿ã§æ£è§£ãšããŸãã
- æ¡ç¹ã«ã¯åžžèãé©çšãããŸãã(ããã®æåããããªã¿ãŒã³ããŒããšãåŒã°ããããŒã¯äœã§ãããïŒãã§ããªã¿ãŒã³ããŒããšçããŠãæ£è§£ã«ã¯ãªããŸãã)
ç«¶æã®æµã
-
ç«¶æéå§æéã«ãªããšãããŒã¿ã«ããŒãžããç«¶æããŒãžã«é£ã¹ãããã«ãªããŸãããªã³ã¯ãã¯ãªãã¯ããŠãç«¶æããŒãžãéããŠãã ããã
-
æéå ã«åé¡ãè§£ããããŒãžäžéšã®ãéä¿¡ããã¿ã³ãæŒããŠãã ããã
-
éä¿¡åŸããã¹ã³ã¢ã衚瀺ããšãããã¿ã³ã衚瀺ãããŸããæ¡ç¹å®äºãŸã§ããã®ç»é¢ãéããŠãããŠãã ããã
- ãã¹ã³ã¢ã衚瀺ããã¿ã³ãæŒããŠãæ§ããŸãããããã®æç¹ã§è¡šç€ºãããã¹ã³ã¢ã¯èªåæ¡ç¹ã«ãããã®ã§ããããã®ç«¶æã«ãããæ£åŒãªã¹ã³ã¢ã§ã¯ãããŸããã
-
ã第7ç«¶æ ç«¶æããã°ã©ãã³ã° (æ©è§£ã)ããçµäºããããšãæ¡ç¹ã»ãã·ã§ã³ãè¡ããŸããå ±æç»é¢äžã§æ£è§£ãšãªãçãã1åãã€çºè¡šããã®ã§ãæ¡ç¹ã«äžæºãããå Žå㯠Google Meet ã®ãã£ããããã€ã¯ã§ãã®æšãç³ãç«ãŠãŠãã ããã
-
æ¡ç¹ã»ãã·ã§ã³çµäºåŸãåã³ãã¹ã³ã¢ã衚瀺ãããã¹ã³ã¢è¡šç€ºããŒãžãéããŠãã ããã(ãã§ã«éããŠããå Žåã¯ããŒãžããªããŒãããŠãã ãã) ããã«è¡šç€ºãããŠããç¹æ°ãæçµçãªç¹æ°ãšãªããŸãã
é¢é£Slackãã£ã³ãã«
- #sig-quiz: TSGã®ã¯ã€ãºå¥œãã®ããã®ãã£ã³ãã«ã§ãã2é±éã«äžåºŠéå¬ããŠãããITã¯ã€ãºãã®åç¥ãããã§è¡ãããã®ã§ããŠã©ãããããæ¹ã¯ãã®ãã£ã³ãã«ã«å å ¥ããŠãããŠãã ãã!
第7ç«¶æ ç«¶æããã°ã©ãã³ã° (æ©è§£ã)
宿œæŠèŠ
- AtCoderã®ããŒãã£ã«ã³ã³ãã¹ããçšãããç«¶æããã°ã©ãã³ã°ã®æ©è§£ãã³ã³ãã¹ãã§ãã
- ç«¶æã«åå ããã«ã¯AtCoderã¢ã«ãŠã³ãããã³ AtCoder Problems ã¢ã«ãŠã³ããå¿ èŠã§ãã
- åé¡ã»ãã㯠100-100-200-200-300-300-400-400 ã§ãã
â ïžçæAIã®äœ¿çšã«ã€ããŠ
- æ¬ç«¶æã«ãããŠãçæAIã®äœ¿çšã¯ååãšããŠçŠæ¢ã§ãããã ããã³ãŒãè£å®ããŒã«ãã³ãŒããæžãã¹ããŒããäžããçšéã§çšããå Žåãé€ããŸãã
- ãçæAIãããã³ãã³ãŒãè£å®ããŒã«ãã®å®çŸ©ã¯ãAtCoderçæAI察çã«ãŒã« - 20241206ç ã«æºæ ãããã®ãšããŸãã
ð°åå¿è åããã³ã
- ããã°ã©ãã³ã°ãåããŠã®å Žå㯠AtCoder Programming Guide for beginners ã§äºåã«åŠç¿ããŠãããŸãããã
- ç«¶æããã°ã©ãã³ã°ãåããŠã®å Žå㯠AtCoder Beginners Selection ã§äºåã«ç·Žç¿ããŠãããŸãããã
- ãããŸã§ã§ãããªãåœæ¥1ã2åã¯å¿ ãè§£ããã¯ãã§ãïŒ
ã«ãŒã«
- ç«¶æã¯å€éšãµã€ãã® AtCoder Problems äžã§è¡ãããŸããããããããªã³ã¯å ã確èªããJoinãããŠãããŠãã ããã
- ç«¶æãå§ãŸã£ããåé¡ãªã¹ããå ¬éãããã®ã§ãæå®ãããåé¡ãè§£ããŠãAtCoderã«æåºããŠãã ããã
以äžã®è¡çºã¯çŠæ¢ã§ãã
- éå»ã®èªåãä»äººã®æåºãèªãã ããã³ããŒããè¡çº
ç²åŸåŸç¹ã®èšç®æ¹æ³
- æéå ã«ç²åŸããåé¡ã®åèšåŸç¹ã®10åã®1ããã®ç«¶æã®ç²åŸåŸç¹ã«ãªããŸãã
- ããã«ãã£ã¯ãããŸããããŸããæçµæåºæå»ã¯ç«¶æç¹æ°ã«ã¯åœ±é¿ããŸããã
é¢é£Slackãã£ã³ãã«
- #sig-procon: ç«¶æããã°ã©ãã³ã°å šè¬ã®è©±é¡ã«é¢ãããã£ã³ãã«ã§ããAtCoderãŠãŒã¶ãŒåãBOTã«ç»é²ããŠããã°ãTSGã®ã¡ã³ããŒãšã³ã³ãã¹ãã®é äœã§ç«¶ãåãããšãã§ããŸã!
第8ç«¶æ 蚌æã³ã³ãã¹ã
宿œæŠèŠ
- äžããããå®çãã³ã³ãã¥ãŒã¿ãŒã®åãåããŠèšŒæãããå®çèšŒææ¯æŽç³»ãã䜿ã£ãŠå®çã蚌æããã³ã³ãã¹ãã§ãã
ð°åå¿è åããã³ã
- ãã®ã³ã³ãã¹ãã§ã¯å®çèšŒææ¯æŽããã°ã©ãã³ã°èšèªãLean 4ããçšããŠç«¶æãè¡ããŸãããã¥ãŒããªã¢ã«ãªã©ãèªãã§äºåã«æ
£ã芪ããã§ãããšæå©ã§ãã
- ãã¥ãŒããªã¢ã«ã®éå ¬åŒæ¥æ¬èªèš³: Theorem Proving in Lean 4 æ¥æ¬èªèš³
- ãŸããä»åã®ã³ã³ãã¹ãã·ã¹ãã ã¯ãã€ã³ãªãã»ãã€ã倧åŠãã¥ãã»ã«ãã«ããå
¬éããŠãããLean Game Serverããšåããã®ã䜿çšããŸãã
- ãã¡ããäºåã«éãã§ãããšæ¬çªã§æå©ã«ç«ã¡åããŸãã
- ãŸããæ¬çªãšåãã·ã¹ãã ãçšããç·Žç¿çšããŒãžãå ¬éãããŠããŸããããããããã¬ã€ããŠãã·ã¹ãã ã®äœ¿çšã«åé¡ããªãã確èªããŠãããŠãã ããã
ã«ãŒã«
- ç«¶æã¯å€éšãµã€ãäžã§è¡ãããŸããç«¶æãå§ãŸã£ããã³ã³ãã¹ãããŒãžãžã®ãªã³ã¯ãå ¬éãããã®ã§ãæå®ãããåé¡ãè§£ããŠãã ããã
- Rulesã®ãnoneãã¢ãŒãã䜿çšããŠåé¡ãè§£ããŠã¯ãããŸããã
ã³ã³ãã¹ãã·ã¹ãã ã®æäœæ¹æ³
- ã³ã³ãã¹ãã·ã¹ãã ãéããšãç»é¢äžå€®ã«åé¡äžèЧã衚瀺ãããŸãã倧ããäžžã倧åãå°ããäžžãå°åã衚ããŠããŸãã
- å皮競æ2025ã§ã¯ã倧åã1åãå°åã4ååºé¡ãããŸãã
- Rulesããã¢ãŒããéžæããããšãã§ããŸããããnoneããéžæããŠåé¡ãè§£ãã®ã¯çŠæ¢ã§ãã
- ãregularããéåžžã¢ãŒãã§ãå°åãåããé çªã«è§£ãå¿ èŠããããŸãã
- ãrelaxedããéžæãããšãåã®å°åãé£ã°ããŠè§£ãããšãã§ããããã«ãªããŸãããã¡ããéžæããŠãã¬ã€ããŠãæ§ããŸããã
- åé¡ãéžæãããšãç»é¢å·Šã«å顿ããç»é¢å³ã«ãã®åé¡ã§äœ¿çšå¯èœãªå®çã衚瀺ãããŸããç»é¢äžå€®ã«ã¯Leanã®ã³ãŒããå ¥åããŠå®çã®èšŒæãé²ããããã®ã³ã³ãœãŒã«ã衚瀺ãããŸãã
- åé¡ã®æç€ºã«åŸã£ãŠãäžããããå®çã®èšŒæãè¡ã£ãŠãã ããã
- å顿ã®å 容ã¯ã蚌æãé²ããããšã«å€åããã®ã§ãæ³šææ·±ã芳å¯ããŠãã ããã
- ãRetryããã¿ã³ãæŒãããšã§èšŒæã®ãã®éšåã«å·»ãæ»ããŠå®è¡ãçŽãããšãã§ããŸãã
- åé¡ãè§£ãããšãç»åã®ããã«å°ããäžžãç·è²ã«å€åããŸãã
- ãã®ç¶æ ã¯å°åã1åè§£ããŠããç¶æ ãªã®ã§ãå皮競æã®ã·ã¹ãã äžã§ã1ããšåçããŠãã ããã
ç²åŸåŸç¹ã®èšç®æ¹æ³
- æéå ã«æ£è§£ã§ããå顿° à 25ç¹ ããã®ç«¶æã®ç²åŸåŸç¹ãšãªããŸãã
第9ç«¶æ ã¿ã€ãã³ã° (æ¥æ¬èª)
宿œæŠèŠ
- æ¥æ¬èªã¿ã€ãã³ã°ã®é床ãç«¶ããŸãããã®ç«¶æã®ã«ãŒã«ã¯æŠããæç« å ¥åã¹ããŒãèªå®è©Šéšãã®ã«ãŒã«ã«æºæ ããŠããŸãã
- ç«¶æããŒãžã«ã¢ã¯ã»ã¹ããç«¶æéå§æå»ã«ãªããšéå§ãã¿ã³ã衚瀺ãããŸãã奜ããªã¿ã€ãã³ã°ã§éå§ãã¿ã³ãã¯ãªãã¯ããç«¶æãéå§ããŠãã ããã
- ã²ãŒã ãéå§ãããšç»é¢å·ŠåŽã«PDFã衚瀺ãããŸããPDFã«èšèŒãããŠããæç« ãå³åŽã®å ¥åãšãªã¢ã«æ£ããå ¥åããŠãã£ãŠãã ããã
ð°åå¿è åããã³ã
- ç·Žç¿çšããŒãžãå ¬éãããŠããŸããããããããã¬ã€ããŠãã·ã¹ãã ã®äœ¿çšã«åé¡ããªãã確èªããŠãããŠãã ããã
- ãã®ç«¶æã¯çŽç²ãªã¿ã€ãã³ã°ååè² ã§ããããã°ã©ãã³ã°ãªã©ã«è©³ãããªããŠãTSGéšå¡ãšå€ªåæã¡ã§ãããããããªãã®ã§ããã²åå ããŠãã ããïŒ
ã«ãŒã«
- ç«¶ææéã¯éå§ãã¿ã³ãæŒããŠãã10åéã§ãã
- ç«¶æäžã¯ãæéµã«ãã£ãŠæåãå
¥åãããã®ã§ããã°ã©ã®ãããªããŒã«ã䜿ã£ãŠãæ§ããŸããã
- ã€ãŸããããŒããŒãé åãIMEã®çš®é¡ã«å¶éã¯ãããŸããã
- ç«¶æäžã«ä»ã®ãŠã§ããµã€ããéãããããŠãæ§ããŸããããã³ããŒã¢ã³ãããŒã¹ãã§æåãå ¥åãããªã©ã®è¡çºã¯çŠæ¢ã§ãã
ç²åŸåŸç¹ã®èšç®æ¹æ³
- æéå ã«æ£ããå ¥åã§ããæåæ°ãçŽ ç¹ãšãªããŸãã
- åå è ã®äžã§æãé«ãçŽ ç¹ã100ç¹ãšãããšãã®ç¹æ°ãååå è ã®ç²åŸåŸç¹ãšãªããŸãã
çŽ ç¹ã®èšç®æ¹æ³
ãå ¥åããæååããšãæ£è§£æååãã«ä»¥äžã®æ£èŠåãé çªã«æœãããã®ããããããå ¥åããšãæ£è§£ããšããã
- NFKCæ£èŠå
- ã,ãããããã«ãã.ãããããã«å€æãã
- ç©ºçœæåã®é€å»
ãå ¥åããšãæ£è§£ãã®æé·å ±ééšåæååãèšç®ããå ±ééšåæååã®é·ããããå ¥åãã§äœåã«æ¿å ¥ãããŠããæååã®é·ããåŒãããã®ããæ£ããå ¥åã§ããæåæ°ããšããã
ãããããã説æ
- äœåã«æ¿å ¥ãããæ¹è¡ã空çœãªã©ã¯ã¹ã³ã¢ã«åœ±é¿ãåãŒããŸããã
- äžè¶³ããŠããæ¹è¡ã空çœãªã©ãã¹ã³ã¢ã«åœ±é¿ãåãŒããŸããã
- å šè§æ°åãåè§ã§æã¡èŸŒãã§ãã¹ã³ã¢ã«åœ±é¿ãåãŒããŸããã
第10ç«¶æ ã³ãŒããŽã«ã
宿œæŠèŠ
- ã³ãŒããŽã«ããè¡ããŸããã³ãŒããŽã«ãã¯ãäžããããåŠçãå®è¡ããããã°ã©ã ãå¯èœãªéãçãæžãããšããç«¶æã§ãã
- ç«¶æããŒãžã«ã¢ã¯ã»ã¹ããç«¶æéå§æå»ã«ãªããšãã«ãŒã«ãšåé¡ã衚瀺ãããŸãã
- ãœãŒã¹ã³ãŒãã¯è€æ°åæåºããããšãã§ããŸãã
ð°åå¿è åããã³ã
- åœæ¥ã¯ãCèšèªããPythonãã®2èšèªãå¿ é èšèªæ ãšããŠåºé¡ãããŸãããããã®èšèªãæžããããã«ãªã£ãŠãããšãåœæ¥å°ãªããšãåŸç¹ãç²åŸããããšãã§ããã§ãããã
- ã³ãŒããŽã«ãçšã®ãã¯ããã¯ãåŠã¶ãšãåãŠã確çãäžãããŸããåŠã¶ããã®è³æãšããŠã以äžã®ãããªããŒãžãåèã«ãªãããã§ãã
- TSGã§ã¯éå»ã«ã³ãŒããŽã«ã倧äŒãäœåºŠãéå¬ããŠããããã®ææåºãããã³ãŒãã®è§£èª¬ãWikiã«ãŸãšããããŠããŸããåèã«ãªããã¯ããã¯ãããããæ²èŒãããŠããã®ã§ãèªãã§ãããšè¯ããããããŸããã
ã«ãŒã«
- ãã®ã³ãŒããŽã«ãç«¶æã¯å人æŠã§ããä»ã®äººãšååããŠè§£ãããšã¯çŠæ¢ãããŠããŸãã
ç²åŸåŸç¹ã®èšç®æ¹æ³
- ãã®ã³ãŒããŽã«ãç«¶æã§ã¯è€æ°ã®èšèªã«ããçš®ç®ãè¡ãããŸããç²åŸåŸç¹ã¯ããããã®èšèªããšã«èšç®ããããã®åèšããã®ç«¶æã§ã®ç²åŸç¹æ°ãšãªããŸãã
- ããããã®èšèªã«ãããæºç¹ã¯ 200 ÷ [èšèªã®æ°] ç¹ã§ãã
- ããããã®èšèªã«ã€ããŠã課é¡ãè§£ãå šãã¬ã€ã€ãŒã§æãçãã³ãŒããæåºãããã¬ã€ã€ãŒã¯æºç¹ãç²åŸããŸãã
- 課é¡ãè§£ãã³ãŒããæåºããä»ã®ãã¬ã€ã€ãŒã¯ãæºç¹ à [å šãã¬ã€ã€ãŒã§æãçãã³ãŒãã®é·ã] ÷ [èªåãæåºããæãçãã³ãŒãã®é·ã] ãç²åŸããŸãã
- ãã®ç«¶æã«ãããæºç¹ã¯200ç¹ã§ãããå¿ ããã200ç¹ãç²åŸãããã¬ã€ã€ãŒããããšã¯éããªãããšã«æ³šæããŠãã ããã
é¢é£Slackãã£ã³ãã«
- #ã³ãŒããŽã«ã倧äŒ: TSGãéå¬ããã³ãŒããŽã«ã倧äŒã«é¢ããæ å ±ãæµããŠãããã£ã³ãã«ã§ãã
ð¢é ç¹
- CTF (web): 100ç¹
- CTF (crypto): 100ç¹
- CTF (pwn): 100ç¹
- SQLã³ã³ãã¹ã: 100ç¹
- éåã³ã³ãã¥ãŒãã£ã³ã°: 100ç¹
- ITã¯ã€ãº: 200ç¹
- 蚌æã³ã³ãã¹ã: 100ç¹
- ç«¶ããæ©è§£ã: 200ç¹
- ã¿ã€ãã³ã° (æ¥æ¬èª): 100ç¹
- ã³ãŒããŽã«ã: 200ç¹
èš: 1300ç¹