아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

cubic

시간 제한1초메모리 제한512 MB

요약
정수 계수로 주어진 삼차방정식의 유리근을 모두 반환한다. 유리근 정리를 써서 상수항과 최고차항의 약수 후보를 검사한다.
난이도

보통10점 중 5점

유형
수학, 정수론, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

다음 함수 P7 을 작성하시오.

  • 입력 매개변수: 1≤max⁡(∣1\le\max(|a∣,∣|,|b∣,∣|,|c∣,∣|,|d∣)≤109|)\le10^9 를 만족하는 정수 a, b, c, d

  • 반환값: 방정식 ax3+x^3+bx2+x^2+cx+x+d=0=0 의 모든 유리근을 임의의 순서로 담은 리스트 (각 근은 한 번만 포함한다.)

    • 정답이 [t0,t1,⋯ ,tn−1][t_0,t_1,\cdots,t_{n-1}] 이고 출력이 [u0,u1,⋯ ,um−1][u_0,u_1,\cdots,u_{m-1}] 이라고 하자.
    • 음이 아닌 정수 kk 에 대해 r(k)={i∈Z:0≤i\<k}={0,1,⋯ ,k−1}r(k)=\{i\in\mathbb Z:0\le i\<k\}=\{0,1,\cdots,k-1\} 로 정의한다.
    • 전단사 함수 σ ⁣:r(n)→r(m)\sigma\colon r(n)\to r(m) 가 존재하여 모든 i∈r(n)i\in r(n) 에 대해 [\frac{|u_{\sigma(i)}-t_i|}{\max(1,|t_i|)}\le10^{-6}] 이면 정답으로 인정된다.
  • 힌트: 유리근 정리는 다음과 같다.

    • ana_n 과 a0a_0 이 0이 아닌 정수 계수 다항식 f(x)=anxn+an−1xn−1+⋯+a0f(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots+a_0 를 생각하자.
    • ∣p∣|p| 와 ∣q∣|q| 가 서로소인 양의 정수이고 f(pq)=0\displaystyle f\left(\frac{p}{q}\right)=0 이면 a0p\displaystyle\frac{a_0}{p} 와 anq\displaystyle\frac{a_n}{q} 는 정수이다.

예제1

  1. 예제 1

    입력
    1 0 0 0
    
    예상 출력
    0