본문 바로가기

중대 컴공

다항식 곱셈

반응형



학번 두개를 가지고 다항식을 하나만든다. 이렇게 만든 두개의 다항식으로 곱셈을 한다.

과제가 다항식의 곱셈이었지만 어느새 다른부분이 더욱 집중이 되어버린;;

그 다른부분중 하나가 addTerm(zeroP(),3,2) 이런 부분이다.

zeroP() : 빈 다항식 배열을 만들어서 주소를 리턴
addTerm() : 다항식 배열에 계수와 차수를 저장한다.

다항식을 만들때 이렇게 함수를 사용하여 만들었음
출력은 다항식이 만들어지는 과정과 곱한 결과가 나오게 하였음.


학번 두개로 다항식을 만든 규칙은 첫번째 학번을 정렬을 하여 20075278 을 87752200 으로 만든다.
그리고 두번째 학번에서 0을 제외한 숫자들을 계수로 한다. 20075277을 275277을 계수로 한다.
그래서 다항식 2X^8 + 7X^7 + 5X^7 + 2X^5 + 7X^2 + 7X^2 을 만든다.
차수가 같은것은 더해주므로 2X^8 + 12X^7 + 2X^5 + 14X^2 이 된다. 이렇게 두개를 만드는 것이다.

 // 빈 다항식
 poly = zeroP();

 // 계수와 차수를 이용해서 다항식을 만든다.
 for(i=0; i<MAX_SIZE; i++)
 {
     if(!rank[i]) break;
     poly = addTerm(poly,rank[i],degree[i]);
 }


이 부분이 다항식을 만들어 주는 과정이다. 위에 규칙으로 만들어진 차수와 계수는 degree, rank배열에 저장된다.
두 배열을 가지고 다항식을 만들어주는 것이다.

정렬은 총 3번이 들어갔다. 당항식을 만들때 각각 한번씨 쓰고 마지막으로 곱셈결과를 정렬할때 한번 쓰인다.
정렬 알고리즘은 알고리즘 시간에 배웠던 삽입정렬을 사용하였음.

곱셈 알고리즘은 일반 손으로 계산할때 하는 방식으로 하였습니다;; 비효율적일수도 있지만;

반응형