QuizWit

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ QuizWit ] in KIDS
글 쓴 이(By): parsec ( 먼 소 류 )
날 짜 (Date): 2002년 5월 29일 수요일 오후 03시 31분 08초
제 목(Title): Re: 간단한(?) 조합문제


n x n table M을 만듭니다.

M(i,j) 에서 i=j 인 곳에 쓰기 금지 표시를 합니다.

M(i,j) == M(j,i) 입니다.  i,j: 1...n

i=1부터 n까지, 각각 j를 1부터 n까지 증가시키면서,

i == j 이면 아무 숫자도 넣지 말고, 이미 숫자가 입력돼 있어도 건너뜀.

그렇지 않으면 M(i,j) 와 M(j,i) 에, 1부터 n(n이 짝수이면 n-1)까지의 숫자중에서

M(i,1) ~ M(i,j-1) 과 M(j,1) ~ M(j,i-1) 에 나온 수 중 가장 큰 수에 1을 더하고

n이 짝수면 n으로 나눈 나머지를, n이 홀수면 n+1로 나눈 나머지를 구한 다음 다시

M(i,1) ~ M(i,j-1) 과 M(j,1) ~ M(j,i-1) 에 나오지 않은 수가 될때까지 1씩 증가시

켜나간다음 그 수를 기록합니다.


이렇게 하면 i번째 팀과 j번째 팀의 대진날짜가 M(i,j)로 정해질 수 있습니다.

n =5, 6일 때의 예:

n=5                                    n=6

팀  A  B  C  D  E                      팀  A  B  C  D  E  F

A   X  1  2  3  4                       A  X  1  2  3  4  5

B   1  X  3  4  5                       B  1  X  3  4  5  2

C   2  3  X  5  1                       C  2  3  X  5  1  4

D   3  4  5  X  2                       D  3  4  5  X  2  1

E   4  5  1  2  X                       E  4  5  1  2  X  3

                                        F  5  2  4  1  3  X

대진표:

n=5:                                n=6:

1일: A-B, C-E                       1일: A-B, C-E, D-F
2일: A-C, D-E                       2일: A-C, B-F, D-E
3일: A-D, B-C                       3일: A-D, B-C, E-F
4일: A-E, B-5                       4일: A-E, B-D, C-F
5일: B-E, C-D                       5일: A-F, B-E, C-D

             ◇    ~~~_ _
            ∴      ~|~| |     _/__,         SEP. 11. 2001
         _ ∴∴ _    ~ | |      \ `         Armorica under a tat
      ,-| `,-,_| |__ | | |   A
______|_|__|_|___|__|| | |__|_|_____________________________________
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.