๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์–ธ์–ด (C, Python)

[python] ์ˆœ์—ด๊ณผ ์กฐํ•ฉ - ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ

by Seop๐Ÿ˜€ 2022. 4. 13.
๋ฐ˜์‘ํ˜•

์ˆœ์—ด(Permutations)

=> ์„œ๋กœ ๋‹ค๋ฅธ n๊ฐœ ์ค‘ r๊ฐœ๋ฅผ ๋ฝ‘๋Š” ๋’ค ๋‚˜์—ด ํ•˜๋Š” ๊ฒƒ

array = [1, 2, 3, 4] # n ์›์†Œ ๊ฐœ์ˆ˜
r = 2                # r ๋ฝ‘๋Š” ๊ฐœ์ˆ˜  

from itertools import permutations

per = list(permutations(array,r))
print(per)

[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]

 

์ค‘๋ณต์ˆœ์—ด

=> '์ˆœ์—ด'์—์„œ ์ค‘๋ณต์„ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ

array = [1, 2, 3, 4] # n ์›์†Œ ๊ฐœ์ˆ˜
r = 2                # r ๋ฝ‘๋Š” ๊ฐœ์ˆ˜  

from itertools import product

per = list(product(array,repeat = r))
print(per)

[(1, 1), (1, 2), (1, 3), (1, 4), (2, 1), (2, 2), (2, 3), (2, 4), (3, 1), (3, 2), (3, 3), (3, 4), (4, 1), (4, 2), (4, 3), (4, 4)]

 

์กฐํ•ฉ(Combinations)

=> ์„œ๋กœ ๋‹ค๋ฅธ n๊ฐœ ์ค‘ r๋ž˜๋ฅผ ๋ฝ‘๋Š” ๊ฒƒ (์ˆœ์„œ๋ฅผ ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค)

array = [1, 2, 3, 4] # n ์›์†Œ ๊ฐœ์ˆ˜
r = 2                # r ๋ฝ‘๋Š” ๊ฐœ์ˆ˜  

from itertools import combinations

per = list(combinations(array,r))
print(per)

[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]    

 

์ค‘๋ณต์กฐํ•ฉ

=> '์กฐํ•ฉ'์—์„œ ์ค‘๋ณต์„ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ

array = [1, 2, 3, 4] # n ์›์†Œ ๊ฐœ์ˆ˜
r = 2                # r ๋ฝ‘๋Š” ๊ฐœ์ˆ˜  

from itertools import combinations_with_replacement

per = list(combinations_with_replacement(array,r))
print(per)

[(1, 1), (1, 2), (1, 3), (1, 4), (2, 2), (2, 3), (2, 4), (3, 3), (3, 4), (4, 4)]   

๋Œ“๊ธ€