중복순열
N = 2 # 주사위 던지는 회수
numbers = [0 for _ in range(N)]
# 중복 순열
def dice1(cnt):
if cnt == N:
print(numbers)
return
for diceNum in range(1, 6+1):
numbers[cnt] = diceNum
dice1(cnt+1)
dice1(0)
순열
N = 3 # 주사위 던지는 회수
numbers = [0 for _ in range(N)]
isSelected = [False for _ in range(6+1)]
# 순열
def dice2(cnt):
if cnt == N:
print(numbers)
return
for diceNum in range(1, 6+1):
if isSelected[diceNum]: # 이미 나온 주사위 눈과 중복되는지 체크
continue
numbers[cnt] = diceNum
isSelected[diceNum] = True
dice2(cnt+1)
isSelected[diceNum] = False
dice2(0)
중복 조합
N = 2 # 주사위 던지는 회수
numbers = [0 for _ in range(N)]
# 중복조합
def dice3(cnt, start):
if cnt == N:
print(numbers)
return
for diceNum in range(start, 6+1):
numbers[cnt] = diceNum
dice3(cnt+1, diceNum)
dice3(0, 1)
조합
N = 2 # 주사위 던지는 회수
numbers = [0 for _ in range(N)]
# 조합
def dice4(cnt, start):
if cnt == N:
print(numbers)
return
for diceNum in range(start, 6+1):
numbers[cnt] = diceNum
dice4(cnt+1, diceNum+1)
dice4(0, 1)