선형 회귀는 너무 쉬워 3

시간 제한2초메모리 제한1024 MB

요약
y절편 b가 고정된 상태에서 세제곱 잔차의 합을 0에 가장 가깝게 만드는 실수 기울기 a를 구한다.
난이도

어려움10점 중 8점

유형
수학, 이분 탐색, 누적 합
정답자
아직 제출이 없습니다

문제

이 문제는 선형 회귀는 너무 쉬워 4와 문제에서 사용하는 식의 차수만 다릅니다.

유림이는 선형 회귀에 자신이 있다. 그래서 MatKor 동아리에서 선형 회귀에 관한 수업을 할 때 집중하지 않았다. 당시 강사였던 동우는 이를 못마땅하게 여겨 유림이에게 과제로 선형 회귀는 너무 쉬워 1과 선형 회귀는 너무 쉬워 2를 내주었고, 유림이는 두 문제를 쉽게 풀었다.

기존의 일반적인 선형 회귀 문제는 다음과 같다. 데이터 (x_1,y_1),(x_2,y_2),⋯ ,(x_n,y_n)(x\_1,y\_1) ,(x\_2,y\_2) ,\cdots ,(x\_n,y\_n)이 주어졌을 때, 이를 가장 잘 설명하는 일차함수 y=ax+by=ax+b를 찾는 문제이다. 여기서 주어진 점들 (x_i,y_i)(x\_i,y\_i)에 대해 x_ix\_i를 통해 얻는 추정치 y_i^=ax_i+b\hat{y\_i} =ax\_i+b로 정의하고, 실제 y_iy\_i에서 예측치인 y_i^\hat{y\_i}를 뺀 값 y_i−y_i^y\_i-\hat{y\_i}를 잔차 ϵ_i\epsilon\_i로 정의한다.

선형 회귀 문제는 이 잔차 제곱의 합이 00에 가장 가깝게, 즉 f_2(a,b)=∑_i=1nϵ_i2=∑_i=1n(y_i−ax_i−b)2f\_2(a,b) =\displaystyle\sum\_{i=1}^n\epsilon\_i^2=\displaystyle\sum\_{i=1}^n(y\_i-ax\_i-b)^2이 최소가 되도록 하는 실수 aa와 bb를 찾는 문제이다.

동우는 여기에서 더 발전시켜 잔차 kk제곱의 합 즉, f_k(a,b)=∑_i=1nϵ_ik=∑_i=1n(y_i−ax_i−b)kf\_k(a,b) =\displaystyle\sum\_{i=1}^n\epsilon\_i^k=\displaystyle\sum\_{i=1}^n(y\_i-ax\_i-b)^k이 00에 가장 가깝게 하는 실수 aa와 bb을 구하는 문제를 냈다.

이 문제를 풀던 유림이는 너무 어려워서 동우에게 조금만 쉽게 바꿔 달라고 하자 동우는 조금 고민하다 다음과 같은 조건을 추가한다. ”k=3k=3일 때만 구해. 그리고 yy절편이 정해져 있을 때 기울기만 정해. 또, 모든 점의 xx좌표는 양의 정수, yy좌표도 정수라고 가정하자.”

이제 유림이가 풀 문제는 다음과 같다. 주어진 bb에 대해 f_3(a)=∑_i=1nϵ_i3=∑_i=1n(y_i−ax_i−b)3f\_3(a) =\displaystyle\sum\_{i=1}^n\epsilon\_i^3=\displaystyle\sum\_{i=1}^n(y\_i-ax\_i-b)^3이 00에 가장 가깝게 하는 실수 aa를 a_3a\_3이라고 할 때, a_3a\_3을 구하면 된다.

입력

첫 번째 줄에 데이터의 개수를 의미하는 정수 nn과 yy 절편을 의미하는 정수 bb가 공백으로 구분되어 주어진다. (1≤n≤105;(1\le n\le 10^5; −106≤b≤106)-10^6\le b\le 10^6)

두 번째 줄부터 nn개의 줄에 걸쳐 한 줄에 하나씩 점의 좌표를 나타내는 정수 x_ix\_i와 y_iy\_i의 값이 공백으로 구분되어 주어진다. (1≤x_i≤106;(1\le x\_i\le 10^6; −106≤y_i≤106)-10^6\le y\_i\le 10^6)

이때, 서로 같은 점이 여러 번 주어질 수 있음에 유의하라.

출력

첫 번째 줄에 f_3(a)f\_3(a)의 값이 00에 가장 가깝게 하는 aa, 즉, a_3a\_3을 출력한다.

답이 여러 가지라면 그중 아무거나 하나 출력한다.

가능한 정답 중 최소 하나 이상과의 절대오차 또는 상대오차가 10−710^{-7} 이하이면 정답으로 인정된다.

예제3

  1. 예제 1

    입력
    2 -2
    3 10
    1 2
    
    예상 출력
    4
    
  2. 예제 2

    입력
    2 0
    2 1
    3 -8
    
    예상 출력
    -1.4
    
  3. 예제 3

    입력
    5 0
    1 1
    1 2
    1 4
    2 5
    2 6
    
    예상 출력
    2.5441394119