본문 바로가기

코딩공부

다항식

f(X) = a0 + a1x + a2x^2 + ... + an-1 X^n-1

n-1차 다항식 
n개의 계수가 리스트 A에 저장되어있음. 
 
public List A;

 

 


v_n2(A,x)
f(x)를 계산하고 그 값을 리턴하는데, O(n^2) 시간의 계산이 필요한 함수 - 각 항을 O(n) 시간에 계산함.

def v_n2(A, x): //n2함수 
    result = 0.0 //결과 반환 변수
    n = len(A) //인자의 총 갯수
    
    for i in range(n): //for구문 (for i = 0; i < n; i++)랑 같음 
        val = 1.0  //x^0 = A(i)에 대해 X(i) 값을 저장 i=2면 val = x^2
                        //밑에 루프 돌기 전에 계속 초기화됨. 
        for j in range(i): //for구문 (이중for문.)
            val *= x  //x^i 계산 => x를 i번 곱함. 
        
        result += A[i] * val //계수와 항을 곱함
    
    return result

 

 

v_n(A,x)
f(x)를 계산하고 그 값을 리턴하는데, O(n) 시간의 계산히 필요한 함수 - 각 항을 O(1)시간에 계산함

def v_n(A, x): //n 함수 (리스트, x값)
    result = 0.0 //결과 변수 초기화
    n = len(A) //a갯수. (= List A; .... A.count)
    
    for i in range(n - 1, -1, -1): //for( i = (n-1); i > 0, i--) .. n-1부터 역순으로  
        result = result * x + A[i]  //result 업데이트 ... 결과에 x곱하고 현재 인자 A(i) 더함. Result = Result x X + A[i]
    
    return result //결과 반환






'코딩공부' 카테고리의 다른 글

MUTABLE / IMMUTABLE 의 차이  (0) 2024.11.19
Stack(스택) / Heap(힙) 의 차이  (0) 2024.11.16