경기장 일렬 좌석에 앉을 때 사람을 지나치지 않고 전부 앉는 방법의 수
일렬로 된 N개의 좌석이 있는데 사람이 양쪽으로 들어가서 좌석에 앉을 수 있다고 할때,
어떤 사람이 이미 앉은 사람을 지나치지 않고 N명이 모두 앉는 방법의 수를 구하는 문제
예를 들어 3명이 앉는다고 해보면 이렇게 4가지가 있다
N개의 자리가 있을 때
_ _ _ _ _ _ ...
첫번째 자리에 먼저 앉으면 1 _ _ _ _ _ ...
나머지 N-1개의 자리는 고정적으로 2,3,4,5,6,... 으로 1가지 = N-1C0가지 결정된다
두번째 자리에 먼저 앉으면 _ 1 _ _ _ _ ....
1의 왼쪽 자리 _ 를 N-1명중 1명을 결정시키면 1의 오른쪽은 무조건 자동으로 결정되므로... N-1C1가지
왜냐하면 1의 왼쪽에 3을 앉히면 3 1 _ _ _ _ ....
1의 오른쪽은 나머지 2,4,5,6,7,..,N 순서대로 앉는 방법밖에 없다
세번째 자리에 먼저 앉으면 _ _ 1 _ _ _ ...
1의 왼쪽 자리 _ _ 를 N-1명중 2명을 결정시키면 1의 오른쪽은 나머지가 자동으로 결정되므로 N-1C2가지
왜냐하면 1의 왼쪽에 5,4를 앉히면 5 4 1 _ _ _ .....
1의 오른쪽은 나머지 2,3,6,7,8,9,...,N이 순서대로 앉아야한다
사람끼리는 구별되지 않는다고 가정하는듯?
아무튼.... 이를 반복하면
_ _ _ _ _ ... 1 _ 에서 1의 왼쪽 자리 N-1명중 N-2명을 결정시키면 1의 오른쪽은 나머지가 자동으로 결정되니 N-1CN-2
_ _ _ _ _ ... 1 에서 1의 왼쪽 자리 N-1명중 N-1명을 결정시키면.. N-1CN-1가지
그래서 전체 경우의 수는...
N-1C0 + N-1C1 + N-1C2 + ... + N-1CN-1 = $2^{N-1}$
m = int(input())
mod = 10**9 + 7
print(pow(2,m-1,mod))
앉게 되는 순서를 기록하면 하나의 수열이 되는데 예를 들어 n = 4이면
1 2 3 4
4 3 2 1
2 1 3 4
3 1 2 4
4 1 2 3
4 3 1 2
4 2 1 3
3 2 1 4
어떤 지점 Si를 기준으로
S1 > S2 > ... > Si < Si+1 < Si+2 < ... < SN의 형태를 띄는 수열인데 이를 바이토닉 수열이라고 부른다
감소했다가 증가하거나, 증가하거나 감소하는 수열을 말한다
감소하다가 증가하는 길이 N인 바이토닉 수열의 개수가 $2^{N-1}$개임을 알 수 있다
'조합론' 카테고리의 다른 글
여사건을 이용한 경우의 수1 - 특정 수를 포함하는 부분집합 구하는 법 (0) | 2024.08.23 |
---|---|
m면체 주사위 n개를 굴려서 나올 수 있는 경우의 수를 구하는 방법 (0) | 2024.08.17 |
다항식의 곱으로 구하는 복수순열1 - 주어진 개수의 알파벳들만으로 만들 수 있는 문자열의 개수 (0) | 2024.06.18 |
원형테이블에 앉은 n명의 사람 중 서로 인접하지 않은 k명의 사람을 뽑는 방법 (0) | 2024.06.07 |
n명 중 k명을 중복해서 선택하는 중복조합의 수 이해하기 (0) | 2024.06.07 |