1. 경우의 수 : 1에서 10까지의 자연수 중 2의 배수 또는 3의 배수는 몇 개가 있을까?

 

1) 확률에서의 곱셈법칙 이용 '또는' : a x b

>>> A = { 2, 4, 6, 8, 10 } #2의 배수인 집합 A를 지정
>>> B = { 3, 6, 9 } #3의 배수인 집합 B를 지정
>>> len( A | B) #A와 B의 합집합의 원소를 구하라 
7 #7가지 

 

 

2. 순열 : nPr = n x (n-1) x (n-2) x (n-3) x ··· (n-r+1)

 

1) 1~5 범위에 있는 숫자를 사용하여 만들 수 있는 세 자리 숫자는?

>>> import itertools #반복자 함수(순열이나 조합) itertools를 불러온다

>>> num = { 1, 2, 3, 4, 5 } #데이터를 정의한다
>>> A = set(inertools.permutations(num, 3) 
#데이터 num에 있는 값 중에서 세 개를 선택하는 순열로 집합을 생성

>>> len(A) #집합 A의 원소 수를 나타내라 
60 #1 ~ 5 범위의 있는 숫자를 사용하여 만들 수 있는 세 자리 숫자의 개수 

>>> for a in A: #A에 있는 모든 원소에 접근하는 루프 (루프 : 명령의 집합)
...   print(a) #A의 원소를 나타내라 
...
(1, 2, 3)
(1, 2, 4)
(1, 2, 5)
 ~중략~
(5, 4, 1)
(5, 4, 2)
(5, 4, 3)

 

 

3. 팩토리얼 : n! = n x (n-1) x (n-2) x (n-3) x ··· x 3 x 2 x 1 = nPn

1) 순열을 이용해 푸는 방법

>>> num = {1, 2, 3, 4, 5} #데이터를 정의한다
>>> A = set(intertools.permutations(num, 5)) #num중에서 다섯 개를 선택하는 순열
>>> len(A) #A에 있는 원소 수 
120 


2) 팩토리얼을 이용해 푸는 방법

>>> import math #math 함수를 불러온다 
>>> math.factorial(5) #5! 구하는 명령문 
120 

 

 

4. 중복 순열 : n(파이)r = n ^r 

>>> num = {1, 2, 3, 4, 5} #데이터를 정의한다
>>> A = set(intertools.product(num, num, num)) 
#중복순열이므로 단순 숫자로 표시하지 않음
#num에서 세 개를 선택하는 중복순열 명령문 

>>> len(A) #집합 A에 있는 원소 수 
125

>>> for a in A: #집합 A에 있는 모든 원소에 접근하는 루프 
...   print(a) 
...
(1, 1, 1)
(1, 1, 2)
(1, 1, 3)
 ~중략~
(5, 5, 3)
(5, 5, 4)
(5, 5, 5)

 

 

5. 조합 : nCr = nPr / r!

1) 1~5까지의 숫자 중 세개의 숫자를 선택하는 경우 

>>> num = { 1, 2, 3, 4, 5 } #데이터 정의
>>> A = set(intertools.combinations(num, 3)) #num에 있는 숫자 중에서 세 개를 선택하는 조합
>>> len(A) #조합의 가짓수 확인
10

>>> for a in A #집합 A에 있는 모든 원소에 접근하는 루프 
...   print(a) #모든 원소 조합을 나타내라 


...
(2, 3, 5)
(1, 2, 3)
(1, 3, 5)
(1, 4, 5)
(1, 2, 4)
(1, 3, 4)
(2, 4, 5)
(3, 4, 5)
(2, 3, 4)
(1, 2, 5)



2) 두 주사위에서 서로 다른 숫자가 나오는 경우 

>>> dice = {1, 2, 3, 4, 5, 6} #주사위의 숫자를 지정
>>> A = set(intertools.combinations(dice, 2)) #dice에서 두 개의 숫자를 선택하는 조합
>>> len(A) #조합의 가짓수 학인 
15

 

 

'파이썬으로 다시 배우는 핵심고등수학 (python) > 06장 : 집합과 확률' 카테고리의 다른 글

6-3. 확률  (0) 2021.02.10
6-1. 집합  (0) 2021.02.09

+ Recent posts