Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 다항식 계산하기: 반복문과 곱셈 연산자 활용 프로그램


다항식 방정식의 값을 계산해야 할 때, 간단한 반복문과 '*'(곱셈) 연산자만으로도 손쉽게 구현할 수 있습니다. 리스트에 저장된 계수들을 차수에 맞게 곱하고 더하는 방식으로 다항식을 평가하는 기본적인 방법을 알아보겠습니다.

예제 코드

아래는 다항식을 계산하는 파이썬 프로그램의 예시입니다.

my_list = [3, -6, 3, -1, 23, -11, 0, -8]
print("The list is :")
print(my_list)

x = 3
my_list_length = len(my_list)

my_result = 0

for i in range(my_list_length):
   my_sum = my_list[i]

   for j in range(my_list_length - i - 1):
      my_sum = my_sum * x

   my_result = my_result + my_sum

print("The result is :")
print(my_result)

실행 결과

The list is :
[3, -6, 3, -1, 23, -11, 0, -8]
The result is :
3349

코드 설명

  • 다항식의 계수를 담은 리스트를 정의하고 콘솔에 출력합니다.

  • 다항식에 대입할 x 값으로 정수 3을 변수에 할당합니다.

  • len() 함수로 리스트의 길이를 구해 변수에 저장합니다.

  • 최종 결과를 누적할 변수를 0으로 초기화합니다.

  • 외부 반복문으로 리스트를 순회하며 각 계수를 가져옵니다.

  • 내부 반복문에서 해당 항의 차수만큼 x를 곱해 거듭제곱을 계산합니다.

  • 계산된 각 항의 값을 초기화된 결과 변수에 더해 나갑니다.

  • 모든 항의 계산이 끝나면 최종 결과값을 콘솔에 출력합니다.

참고: 호너(Horner) 방법으로 더 효율적으로 계산하기

위 방식은 이중 반복문을 사용하기 때문에 시간 복잡도가 O(n²)입니다. 계수의 개수가 많아지면 비효율적일 수 있으며, 이 경우 호너 방법(Horner's Method)을 사용하면 O(n)의 시간 복잡도로 다항식을 계산할 수 있습니다.

my_list = [3, -6, 3, -1, 23, -11, 0, -8]
x = 3

my_result = 0
for coef in my_list:
    my_result = my_result * x + coef

print("The result is :", my_result)  # 3349

호너 방법은 다항식을 인수분해된 형태로 재구성하여 곱셈 횟수를 크게 줄여주므로, 실무에서는 이 방식을 사용하는 것이 좋습니다.