| °ÔÀÓ :: Åä³Ê¸ÕÆ® :: RoundRobin. °ÔÀÓ :: Åä³Ê¸ÕÆ® :: RoundRobinÀº ¶ó¿îµå ·Îºó Åä³Ê¸ÕÆ® ÀÏÁ¤ ½ÖÀ»À§ÇÑ Perl ¸ðµâÀÔ´Ï´Ù. |
Áö±Ý ´Ù¿î·Îµå |
°ÔÀÓ :: Åä³Ê¸ÕÆ® :: RoundRobin. ¼øÀ§ ¹× ¿ä¾à
- ƯÇã:
- Perl Artistic License
- °Ô½ÃÀÚ À¥»çÀÌÆ®:
- http://search.cpan.org/~drbean/
°ÔÀÓ :: Åä³Ê¸ÕÆ® :: RoundRobin. ű×
°ÔÀÓ :: Åä³Ê¸ÕÆ® :: RoundRobin. ¼³¸í
°ÔÀÓ :: Åä³Ê¸ÕÆ® :: RoundRobinÀº ¶ó¿îµå ·Îºó Åä³Ê¸ÕÆ® ÀÏÁ¤ ½ÖÀ»À§ÇÑ Perl ¸ðµâÀÔ´Ï´Ù. °ÔÀÓ :: Åä³Ê¸ÕÆ® :: RoundRobinÀº ¶ó¿îµå ·Îºó Åä³Ê¸ÕÆ® ÀÏÁ¤ ½ÖÀ»À§ÇÑ Perl ¸ðµâÀÔ´Ï´Ù .Synopsis $ schedule = Games :: Tournament :: RoundRobin-> New; $ pairings = $ schedule-> indexesinRound ($ ROUDM); $ ROLD = $ Schedule-> ȸÀÇ ($ ¸â¹ö 1, ); ... 2N Ç÷¹À̾îÀÇ ¸®±×ÀÇ ¸ðµç ȸ¿øÀº 2N-1 ¶ó¿îµå¿¡¼ ¸ðµç ´Ù¸¥ ȸ¿ø°ú ½ÖÀ» ÀÌ·ê ¼ö ÀÖ½À´Ï´Ù. ¸®±× ȸ¿øµéÀÌ (INF, 1 .. 2N-1)ÀÇ °æ¿ì, ±× ´ÙÀ½ ¶ó¿îµå¿¡¼, ³ª´Â ½ÖÀ» ÀÌ·ç°Ô µÉ ¼ö ÀÖ½À´Ï´Ù. INF ¹× A´Â A + B = 2i (MOD 2N-1) .METHSNEW °ÔÀÓ :: Åä³Ê¸ÕÆ® :: ROUTROBIN-> NEW (v => 5, ¸®±× => ) °ÔÀÓ :: Åä³Ê¸ÕÆ® :: RoundRobin-> new (¸®±× => {a => $ a, b => $ b, c => $ c}) ¿©±â¼ v (¼±Åà »çÇ×)´Â ¸®±× ¸â¹öÀÇ ¼öÀÔ´Ï´Ù ¹× ¸®±× (¼±Åà »çÇ×)´Â °³º° °íÀ¯ ¸®±× ±¸¼º¿ø¿¡ ´ëÇÑ ¸ñ·Ï (¶Ç´Â ÇؽÃ) ÂüÁ¶ÀÔ´Ï´Ù. v ¶Ç´Â ¸®±× Áß Çϳª (¿ì¼± ¼øÀ§)°¡ ÇÊ¿äÇÏ¸ç ¸®±×°¡ ÁÖ¾îÁöÁö ¾ÊÀ¸¸é ȸ¿øµéÀº ¼ýÀÚ 0À¸·Î ½Äº°µË´Ï´Ù. N-1. ¸®±×´Â N ´ë»ó ¸ñ·Ï (¶Ç´Â ÇؽÃ)ÀÔ´Ï´Ù. 'index'¸Þ¼Òµå·Î 'name'¸Þ¼Òµå¿Í »ê¼ö ¿¬»êÀ» °¡Áø ¹®ÀÚ¿À» 'name'¸Þ¼µå·Î ÀοëÇϴ Ŭ·¡½ºÀÇ ÀνºÅϽº°¡µÇ¾î¾ßÇÕ´Ï´Ù. n °³ÀÇ °´Ã¼¿¡¼ È£Ãâ µÈ À妽º ¸Þ¼Òµå´Â N ¼ýÀÚ, 0 .. N-1À» ¹ÝȯÇؾßÇÏ¸ç ¹è¿·Î Ç¥½ÃµÇ¸é ¼ø¼´ë·Î ¹ÝȯÇؾßÇÕ´Ï´Ù. Çؽ÷Πǥ½ÃµÇ¸é Çؽô ¹è¿·Î ³»ºÎÀûÀ¸·Î ÀúÀåµÇ°í Å°°¡ »èÁ¦µË´Ï´Ù. ¸®±×°¡ ¹®ÀÚ¿À̳ª ¼ýÀÚ ¸ñ·ÏÀ̸ç, ¸ñ·ÏÀÇ À§Ä¡¸¦ ±âÁØÀ¸·Î °ª¿¡ ´ëÇØ »öÀÎÀÌ »ý¼ºµÇ°í ¹®ÀÚ¿À̳ª ¼ýÀÚÀÇ Çؽð¡ÀÖ´Â °æ¿ì, Å°ÀÇ Á¶¸®¹ý ¼ø¼¿¡ ±âÃÊÇÏ¿©. °¢ ¹®ÀÚ¿Àº °íÀ¯ ÇÒ °ÍÀ¸·Î ¿¹»óµË´Ï´Ù. nÀº Ȧ¼ö, Ãß°¡ N-1, 'BYE'¶Ç´Â °´Ã¼ (±âº»ÀûÀ¸·Î °ÔÀÓ :: ¸®±× :: ±¸¼º¿ø °³Ã¼, ±âº»ÀûÀ¸·Î °ÔÀÓ :: ¸®±× :: ±¸¼º¿ø °³Ã¼, ±âº»ÀûÀ¸·Î) ȸ¿øÀº ù ¹ø° ¸â¹öÀÇ À¯Çü¿¡ µû¶ó ±¸¼º¿øÀÔ´Ï´Ù. ¸®±×´Â ³¡¿¡ Ãß°¡µÇ°í nÀº 1.IndexesInround $ schedule-> indexesinround ($ m) ¶ó¿îµå $ mÀÇ ½ÖÀÌ ¹è¿ ÂüÁ¶¸¦ ¹ÝȯÇÕ´Ï´Ù. ÀÌ ¹æ¹ýÀº ¸®±× ¸â¹ö¸¦ ³ªÅ¸³»´Â ¼ýÀÚ¸¦ »ç¿ëÇÏ´Â °æ¿ì À¯¿ëÇÕ´Ï´Ù. ¹®ÀÚ¿À̳ª °´Ã¼¸¦ »ç¿ëÇÏ°í ÀÖ°í »öÀÎ ¹øÈ£¸¦ ¸ð¸£´Â °æ¿ì¿¡´Â ±×·¸°Ô À¯¿ëÇÏÁö ¾Ê½À´Ï´Ù. ¹è¿ÀÇ À§Ä¡´Â ±¸¼º¿øÀ» ³ªÅ¸³À´Ï´Ù. °ªÀº ÆÄÆ®³Ê¸¦ ³ªÅ¸³À´Ï´Ù. µû¶ó¼ °¢ ±¸¼º¿øÀº µÎ ¹ø ³ªÅ¸³³´Ï´Ù .RoundSintournament $ T = $ Schedule-> RoundSintournament; $ lound1 = $ t ; $ inround1fourthwith = $ t -> -> ; $ INLASTROUNDLASTWITH = $$ T ; ¹è¿ ¹è¿¿¡ ´ëÇÑ ÂüÁ¶·Î, Åä³Ê¸ÕÆ®ÀÇ ¸ðµç ¶ó¿îµåÀÇ ½ÖÀ̸¦ ¹ÝȯÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â ¾Ë°í¸®Áò À妽º¸¦ »ç¿ëÇÏ´Â °æ¿ì À¯¿ëÇÕ´Ï´Ù .Partner $ schedule-> ÆÄÆ®³Ê ($ ¸â¹ö, $ m)´Â $ m.membersinround $ m¿¡ $ memberÀÇ ÆÄÆ®³Ê¸¦ ¹ÝȯÇÕ´Ï´Ù. m.membersinround $ schedule-> membersinround ($ m) Çؽà ÂüÁ¶¸¦ ¹ÝȯÇÕ´Ï´Ù. µÕ±Ù $ mÀÇ ½ÖÀÇ ÀÌ ¹æ¹ýÀº ¹®ÀÚ¿À̳ª °´Ã¼¸¦ »ç¿ëÇÏ´Â °æ¿ì À¯¿ëÇÕ´Ï´Ù. ÇؽÃÀÇ ¿¼è´Â ¸®±× ±¸¼º¿øÀ» ´ëÇ¥ÇÕ´Ï´Ù. ¸®±× ±¸¼º¿øÀÌ °³Ã¼ ÀÎ °æ¿ì ÇØ´ç À̸§Àº Å°·Î »ç¿ëµË´Ï´Ù. 2 °³ÀÇ À̸§ÀÌ µ¿ÀÏÇϸé À̸§ÀÌ $ name.1, $ name.2 µîÀ¸·Î º¯°æµË´Ï´Ù. °ªÀº ÆÄÆ®³ÊÀÔ´Ï´Ù. µû¶ó¼ °¢ Ç÷¹À̾î´Â µÎ ¹ø Ç¥½ÃµË´Ï´Ù .Memberschedule $ schedule-> ¸â¹ö ü°è ($ ¸â¹ö)´Â ¹è¿ ÂüÁ¶·Î, $ ȸ¿øÀÌ ¸¸³ª´Â ¼ø¼´ë·Î ÀÏÄ¡ÇÏ´Â ÆÄÆ®³Ê, Áï ROAD.Meeting $ schedule-> ȸÀÇ ($ ¸â¹ö, $ ÆÄÆ®³Ê) $ ¸â¹ö°¡ $ partner.meetings $ schedule-> meeting ($ member1, )¸¦ ¹ÝȯÇÏ´Â ¶ó¿îµå (Todo ¹× Venue)¸¦ ¹ÝȯÇÕ´Ï´Ù. $ ¸â¹ö 1ÀÌ $ ¸â¹ö 2, $ ¸â¹ö 3, ... À妽º $ schedule-> »öÀÎ ($ ¸â¹ö)À» ¹ÝȯÇÏ´Â ¹è¿ ÂüÁ¶, ¶ó¿îµå (Todo ¹× Venue)´Â $ ¸â¹öÀÇ À妽º¸¦ ¹ÝȯÇÕ´Ï´Ù. ´Ù¸¥ ¸â¹öµé. À妽º´Â ¸®±× ÀμöÀÇ $ ¸â¹öÀÇ À§Ä¡, 0..n-1ÀÌ »ý¼ºÀÚ (¹è¿ ÀÎ °æ¿ì) ¶Ç´Â ±¸Ãà µÈ ¹è¿ (hash ÀÎ °æ¿ì)ÀÌ ¹è¿ÀÇ ±¸¼º¿øÀÌ ¾Æ´Ñ °æ¿ì, ¶Ç´Â ±× ÀÚü°¡ À妽º ÀÎ Undef°¡ ¹ÝȯµË´Ï´Ù .Member $ schedule-> ¸â¹ö ($ INDEX) $ schedule-> ¸â¹ö ($ name) $ bye = $ schedule-> ¸â¹ö ($ schedule-> size-1) ¸â¹ö°¡ ³ªÅ¸³»´Â ¸â¹ö¸¦ ¹ÝȯÇÕ´Ï´Ù. $ À妽º·Î 0..n-1 ¶Ç´Â $ name, ¹®ÀÚ¿ÀÇ ¼ýÀÚÀÔ´Ï´Ù. ±×·± ¸â¹ö°¡ ¾øÀ¸¸é Undef°¡ ¹ÝȯµË´Ï´Ù. ÆÄÆ®³Ê ($ INDEX) $ schedule-> ÆÄÆ®³Ê ($ name)´Â $ Àε¦½Ì µÈ $ À妽º ¶Ç´Â $ named ȸ¿øÀÇ ¸ðµç ÆÄÆ®³ÊÀÇ ¹è¿ ÂüÁ¶¸¦ »öÀÎ ¼ø¼·Î ¹ÝȯÇÕ´Ï´Ù. ¶Ç´Â ¸®±× Argument.RealPartners $ schedule-> RealPartners ($ INDEX)´Â 'BYE'¸â¹ö¸¦ Á¦¿ÜÇÑ $ INDEXED ¸â¹öÀÇ ¸ðµç ÆÄÆ®³ÊÀÇ ¹è¿ ÂüÁ¶¸¦ ¹ÝȯÇÕ´Ï´Ù. ¸¶Áö¸· ¸â¹ö¿¡¼ ¹þ¾î³¯ ¶§ 'Bye'ȸ¿øÀÌ ¾øÀ¸¸éÀÌ ¿É¼ÇÀ» »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À. $ schedule-> sizeretetturns ¶ó¿îµå ·ÎºóÀÇ ¸â¹ö ¼ö¸¦ Á¦½ÃÇϽʽÿÀ. ¶§·Î´Â ¸®±× ¹è¿ÀÌ Á¦°øµÇ¸é ¼ýÀÚ°¡ Ȧ¼ö ÀÎ °æ¿ì BYE°¡ Ãß°¡µÇ±â ¶§¹®¿¡ ÁöÁ¤µÈ ¸®±× ±¸¼º¿øÀÇ ¼ö¿Í µ¿ÀÏÇÏÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. Rounds $ schedule-> ¶ó¿îµåÀÇ ¶ó¿îµå ¼ö¸¦ µÕ±Û°Ô ȸº¹ÇÕ´Ï´Ù. ³²ÀÚ À̸§. ÀÌ°ÍÀº ¸®±× ¸â¹öÀÇ ¼ö¸¦ ¸¶À̳ʽº (MINUS)ÀÇ ¼ö¿Í °°½À´Ï´Ù. ¡¤ PERL ¿ä±¸ »çÇ× : ¡¤ Perl.
°ÔÀÓ :: Åä³Ê¸ÕÆ® :: RoundRobin. °ü·Ã ¼ÒÇÁÆ®¿þ¾î