일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- html
- pandas
- VBA
- 파이썬GUI
- 엑셀
- 아웃룩
- pythongui
- 비주얼베이직
- win32com
- 파워포인트
- windows
- 깃
- Excel
- Outlook
- python
- python3
- Windows10
- 파이썬3
- 파이썬
- office
- git
- pyqt5
- 문자열
- 오피스
- matlab
- 윈도우10
- Android
- 안드로이드
- Windows11
- 윈도우11
Appia의 IT세상
파이썬[Python] 팩토리얼(Factorial)연산 하기 및 관련 제약 사항 본문
이번 포스팅은 수학에서 많이 사용하는 팩토리얼(Factorial)연산하는 방법에 대해서 살펴보고자 합니다. 간단히 연산하는 방법 및 관련 제약사항등에 대해서 이야기를 해보고자 합니다.
기본 팩토리얼 연산에 대해서 간단히 이야기 하면 다음과 같습니다. n의 팩토리얼(Factorial)은 1부터 n까지의 정수를 곱하는 단순한 연산입니다. 이를 표현할 때는 n! 이렇게 표시를 합니다. 간단히 예를 들자면, 5!은 1x2x3x4x5까지의 연산의 결과를 의미합니다. 즉, 결과는 120입니다.
팩토리얼(Factorial)는 일반적으로 모든 양의 정수와 0에 대해서 정의 합니다. 0!는 값은 1입니다. 팩토리얼 함수를 가장 많이 사용하는 것은 경우의 수를 셀 때 가장 맣이 사용합니다.
그럼 이제 파이썬[Python]으로 구해보도록 하겠습니다.
example)
n = 5
fact = 1
for i in range(1, n + 1):
fact = fact * i
print(str(n)+" factorial : ", fact)
|
cs |
result)
5 factorial : 120
|
cs |
위와 같은 형태로 팩토리얼(Factorial)을 구현할 수 있습니다. 하지만 이보다 조금 더 쉽게 math함수를 이용할 수 있습니다. 그럼 간단히 다음과 같이 살펴보도록 하겠습니다.
example)
import math
print(str(n)+" factorial : ", math.factorial(n))
|
cs |
result)
5 factorial : 120
|
cs |
이와 같은 형태로 구현을 할 수가 있습니다. 즉, math 모듈을 불러와서 factorial 함수를 불러와 사용할 수 있습니다.
그럼 이제부터는 몇가지 제약 사항들에 대해서 살펴보고자 합니다. 위에서 설명했던 바와 같이 factorial은 0과 양의 정수를 바탕으로 구현이 가능합니다. 그럼 다음 예시를 한번 살펴 보겠습니다.
example)
import math
print(str(-10)+" factorial : ", math.factorial(-10))
|
cs |
result)
Traceback (most recent call last):
File "C:/Users/Bens/PycharmProjects/Blogger/List_Merge.py", line 6, in <module>
print(str(-10)+" factorial : ", math.factorial(-10))
ValueError: factorial() not defined for negative values
|
cs |
이와 같이 음수를 입력하면 다음과 같이 negative value에 대해서 정의 되지 않는다고 ValueError가 발생합니다. 그럼 다음 같은 코드도 또한 살펴보겠습니다.
example)
import math
print(str(-0.3)+" factorial : ", math.factorial(-0.3))
|
cs |
result)
Traceback (most recent call last):
File "C:/Users/Bens/PycharmProjects/Blogger/List_Merge.py", line 6, in <module>
print(str(-0.3)+" factorial : ", math.factorial(-0.3))
ValueError: factorial() only accepts integral values
|
cs |
이와 같이 소수를 입력하면 integral value만 허용한다는 ValueError가 발생합니다. 실제 팩토리얼(Factorial)이 음수와 소수를 입력하면 문제가 되기 때문에 애시당초 다음과 같은 문제를 발생시킵니다.
오늘은 팩토리얼(Factorial)연산에 관해서 알아봤습니다. 팩토리얼(Factorial) 연산을 반복문 또는 math모듈에서 불러와서 사용하는 방법에 대해서 살펴봤습니다. 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨 주시길 바랍니다. 감사합니다.
'Python > Python 응용' 카테고리의 다른 글
파이썬[Python] 외부IP,내부IP, 맥(MAC)주소 확인하는 방법 (1) | 2020.06.01 |
---|---|
파이썬[Python] 특정 경로에 있는 모든 파일과 디렉토리 출력하기(os.walk) (2) | 2020.05.25 |
파이썬[Python] 단어 첫 글자 대문자로 바꾸기/ 대소문자 바꾸기(upper,lower,capitalize) (0) | 2020.05.20 |
파이썬[Python] 리스트에서 중첩된 맴버 제거 하기 (0) | 2020.05.15 |
파이썬[Python] 문자열 템플릿(string Template) 활용하기 (0) | 2020.05.13 |