Python에서 팩토리얼을 찾는 방법 [코딩 예제 포함]

게시 됨: 2020-11-30

목차

소개

우리 모두는 초등학교 수학 과목에서 팩토리얼이라는 단어를 소개받았기 때문에 팩토리얼이라는 단어에 익숙해야 합니다. 계승은 1에서 시작하여 주어진 숫자까지의 모든 양의 정수의 곱입니다. Factorial은 양수 값에 대해서만 계산되며 음수 및 Float 유형에 대해서는 계산할 수 없습니다.

선형 대수, 확률, 통계와 같은 모든 수학적 구성 요소의 중요성을 이제 이해할 수 있었던 데이터 사이언스 덕분에 실생활에서 사용할 수 있는 계승 및 기타 수학적 개념을 배울 때 궁금했습니다.

이 기사에서 파이썬을 사용하여 팩토리얼을 계산하는 다양한 방법의 중요성을 살펴보겠습니다.

중요성

예를 들어 세계 레이스 이벤트에서 10대의 자동차 사이의 경주가 있고 그 10대의 자동차가 1위, 2위, 3위를 차지하는 방법을 찾는 문제 설명이 있다고 가정해 보겠습니다. 차가 10대밖에 없기 때문에 그냥 종이에 다양한 조합을 적어보고자 합니다. 하지만 100개 이상의 자동차 이벤트가 있고 그 안에 동일하거나 유사한 종류의 문제 설명이 있다면 어떻게 될까요?

이러한 상황에 대처하기 위해 Permutation 이라는 것이 있습니다 . 우리 초등학교에서 이 용어를 순열 및 조합으로 알고 있을 것입니다. 이것은 데이터 분석 및 통계 기술을 에이스하려는 경우 매우 필요합니다. 초보자이고 데이터 과학에 대해 더 자세히 알고 싶다면 최고의 대학에서 제공하는 데이터 과학 과정을 확인하십시오. 이것은 아래와 같이 문제 설명을 해결하는 데 도움이 됩니다.

해결책

총 10대의 차량이 있습니다.

우리는 10명 중 3명의 승자의 가능성을 찾아야 합니다.

10! / (10-3)! = 10! / 7! = 720

따라서 이 10대의 자동차가 레이스 이벤트에서 1위, 2위, 3위를 할 수 있는 총 720개의 가능성이 있습니다.

파이썬 구현

Python은 코드 가독성에 중점을 둔 고급 해석 및 범용 프로그래밍 언어이며 Python 언어에서 사용되는 구문은 프로그래머가 Java 또는 C++에 비해 더 적은 단계로 코딩을 완료할 수 있도록 도와주며 C를 기반으로 구축되었습니다.

언어는 개발자 Guido Van Rossum 에 의해 1991년에 설립되었습니다 . Python은 주로 Computer Vision, Natural Language Processing, Deep Learning, Speech Recognition, Face Recognition, Voice Recognition과 같은 다양한 인공 지능 사용 사례에서 사용되기 때문에 대규모 조직에서 널리 사용됩니다.

Python은 매우 강력한 프로그래밍 도구이며 실생활에서 다양한 사용 사례에 사용할 수 있습니다. 코드를 명시적으로 작성하지 않고도 주어진 숫자의 계승을 계산할 수 있는 직접 함수를 제공합니다. 그러나 순진한 접근 방식으로 시작하여 마침내 해당 기능에 대해 알아보겠습니다.

또한 읽기: Python이 개발자들에게 인기 있는 이유는 무엇입니까?

For 루프

각 단계에서 곱하여 주어진 숫자까지 숫자 1부터 반복하여 숫자의 계승을 계산할 수 있습니다. 위에서 논의한 접근 방식의 코딩 부분으로 넘어가 보겠습니다.

암호

number = input ("Enter a Number:") # 이상적으로는 모든 인쇄 메시지를 사용할 수 있습니다.

계승 = 1

if int (숫자) >=1: # 주어진 숫자가 양수인지 아닌지 확인합니다.

for i in range (1, int(number)+1): # 1번부터 루프

factorial = factorial * I # 각 숫자를 곱합니다.

print ("Factorial of ", number, " is: ", factorial) # 계산된 계승을 출력합니다.

산출

위의 코드를 실행하면 아래와 같은 결과가 나옵니다.

숫자 입력 :5

5의 팩토리얼은 120입니다.

재귀 함수

이 경우 파이썬에서 주어진 숫자의 계승을 계산하는 데 도움이 되는 사용자 정의 함수를 만들 것입니다.

암호

숫자 = 입력("숫자를 입력하세요: ")

def recursive_factorial(number): # 사용자 정의 재귀 함수.

if number == 1: # 주어진 숫자가 1인 경우의 조건

반환 번호

elif number < 1: # 주어진 숫자가 1보다 작은 경우의 조건

return ("주어진 숫자가 1보다 작아 계승을 계산할 수 없습니다.")

또 다른:

반환 번호*recursive_factorial(숫자 – 1)

인쇄(recursive_factorial(int(숫자)))

산출

위의 코드를 실행하면 아래와 같은 결과가 나옵니다.

숫자 입력: 5

120

숫자 입력: -2

주어진 숫자가 1보다 작고 계승을 계산할 수 없습니다.

숫자 입력: 1

1

Math 패키지의 계승 함수

Python은 사용 용이성과 많은 작업을 단순화하는 사용자 친화적인 타사 패키지로 널리 알려져 있습니다. 현재 시나리오에서 Python은 데이터 과학자를 위한 필수 언어입니다.

암호

import math # 필수 패키지

number= input("숫자를 입력하세요: ")

print("", number, "의 계승은 : ")

print(math.factorial(int(number))) # 계승을 계산하는 함수

산출

위의 코드를 실행하면 아래와 같은 결과가 나옵니다.

숫자 입력: 5

5의 계승은 다음과 같습니다.

120

숫자 입력: 5.6

역추적(가장 최근 호출 마지막):

5.6의 계승은 다음과 같습니다.

파일 "C:/Users….py", 5행,

print(math.factorial(int(숫자)))

ValueError : 기본 10인 int()에 대한 잘못된 리터럴: '5.6'

float 정수의 계승을 계산할 수 없기 때문에 값 오류가 발생합니다. 파이썬 코드를 명시적으로 작성할 때 모든 조건을 확인하고 관련 메시지를 출력해야 하지만 파이썬에서 Math 패키지의 계승 기능에서는 모든 작업을 수행하여 다음과 같은 경우 라인 코드를 줄이는 데 도움이 됩니다. 우리 프로젝트 또는 문제 진술에서 Factorial 사용.

필독: 파이썬 튜토리얼

결론

이 기사에서 우리는 실생활에서 Factorial 및 기타 중요한 수학적 개념의 중요성과 적용을 알게 되었습니다. 주어진 숫자의 팩토리얼을 계산하기 위해 다양한 유형의 코드를 살펴보았습니다. 이 기사는 Python의 Factorial에 대해서만 다루지만 MATH 패키지에서 사용할 수 있는 다른 많은 수학적 계산이 있습니다. Python을 처음 접하는 사람들은 더 깊이 있게 살펴볼 수 있으며 몇 가지를 시도해 볼 수도 있습니다.

데이터 과학에 대해 자세히 알아보려면 작업 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크숍 , 업계 전문가와의 멘토링, 1 - 업계 멘토와 일대일, 400시간 이상의 학습 및 최고의 기업과의 취업 지원.

파이썬에서 재귀란 무엇입니까?

파이썬에서 재귀는 명확한 결과에 도달하기 위해 데이터를 반복하는 것을 의미합니다. 어떤 것(문 또는 함수)이 자체적으로 정의되는 잘 알려진 수학적 및 프로그래밍 프로세스입니다. 재귀의 도움으로 사용자 또는 개발자는 복잡한 코드와 기능을 더 작은 하위 부분으로 분할할 수 있으며 시퀀스를 만드는 데 훨씬 더 쉽게 접근할 수 있습니다. 절대 종료되지 않거나 과도한 메모리나 CPU 전력을 소모하지 않는 함수를 작성하는 일이 잦기 때문에 개발자는 재귀를 사용할 때 각별한 주의를 기울여야 합니다. 올바르게 수행되면 재귀는 매우 효율적이고 수학적으로 혁신적인 프로그래밍 방법이 될 수 있습니다.

Python 기초를 배우는 데 얼마나 걸립니까?

Python은 가장 간단한 프로그래밍 언어로 간주되므로 Python의 기초를 배우는 것은 쉽고 시간이 많이 걸리지 않습니다. 학생이나 전문가는 Python의 기초를 배우는 데 1-2개월을 할애할 수 있습니다. 전문가는 또한 매일 약 2-3시간을 투자하여 4-5개월 안에 모든 필수 파이썬 기능과 라이브러리를 마스터할 수 있습니다. 대부분의 코드에는 명령문이 적고 미리 정의된 함수가 더 많기 때문에 Python을 이해하는 것은 쉽습니다.

파이썬에서 계승 프로그램의 시간 복잡도는 얼마입니까?

계승 프로그램에서 factorial(0)은 단순히 하나의 비교(1 단위 시간)이고 factorial(n)은 하나의 비교, 하나의 곱하기, 하나의 빼기 및 계승(n-1)에 대한 시간이라는 것을 발견했습니다. 따라서 T(n) = T(n — 1) + 3 및 T(0) = 1이라고 말할 수 있습니다. 값을 입력하면 Big-Oh 표기법에서 볼 수 있듯이 T(N)이 n에 정비례한다는 것을 알 수 있습니다. 결과적으로 계승 계획의 시간 복잡도는 O(n)입니다.