제로베이스 기초수학(23~26)

ningbbang·2023년 3월 28일
0

Zerobase DS13

목록 보기
9/48

1. 군 수열
여러 개의 항을 묶었을 때 규칙성을 가지는 수열
1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5 ---
(1), (1, 2), (1, 2, 3), (1, 2, 3, 4), (1, 2, 3, 4, 5) ---

군 수열의 일반항을 구하여 수열의 특정항을 알아낼 수 있음

inputN = int(input('n항 입력'))

flag = True
n = 1; nCnt = 1; searchN = 0
while flag:

    for i in range(1, (n+1)):
        if i == n:
            print('{} '.format(i), end='')
        else:
            print('{}, '.format(i), end='')

        nCnt += 1
        if nCnt > inputN:
            searchN = i
            flag = False
            break
    print()
    n += 1

print('{}항 : {}'.format(inputN, searchN))

2. 순열
n개에서 r개를 택하여 나열하는 경우의 수
nPr = n(n-1)(n-2) --- (n-r+1), (단, 0 < r <= n)
-> n! / (n-r)!
ex) 8P3 = 8 7 6 = 8!/5! = 336

원순열 : 시작과 끝의 구분이 없는 수열
n! / n or (n-1)!

#순열
#8P3
import math

numN = 8
numR = 3
result = 1

#1
for n in range(numN, (numN - numR), -1):
    print('n : {}'.format(n))
    result = result * n

print('result : {}'.format(result))

#2
result = math.factorial(numN) / math.factorial(numN-numR)
print(f'{numN}P{numR} : {int(result)}')
profile
HR Anaylist!

0개의 댓글