순열과 중복수열

It's me, Hyeseung·2022년 9월 30일
0

Algorithm

목록 보기
2/8
  • 서로 다른 것들 중 몇 개를 뽑아서 한 줄로 나열하는 것
  • 서로 다른 n개중 r개를 택하는 순열은 아래와 같이 표현한다.
  • nPr = n (n-1) (n-2) * ….(n-r+1)
for i1 in range(1,4):
	for i2 in range(1,4):
		if i2 ! = i1:
			for i3 in range(1,4):
				if i3 ! = i1 and i3 ! = i2:
					print(i1,i2,i3)

중복순열 예시

arr = [1,2,3,4,5,6]
path = ['']*3

def abc(level):
    if level ==3:
        for i in range(level):
            print(path[i], end = '')
        print()
        return

    for i in range(6):
        path[level] = arr[i]
        abc(level+1)
        path[level]=0

abc(0)

순열 예시

path=['']*3
dice=[1,2,3,4,5,6]
used=[0]*6

def abc(level):
    if level==3:
        for i in range(level):
            print(path[i],end=' ')
        print()
        return

    for i in range(6):
        if used[i] == 1: continue
        path[level]=dice[i]
        used[i] =1
        abc(level+1)
        used[i] = 0
        path[level]=0

abc(0)

0개의 댓글