問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
データ群にもっともらしい関数を当てはめることをフィッティングと呼び、そのフィッティングした関数を使ってデータ群の特徴、傾向などを調べることを回帰分析と言います。データ分析における基本的な分析手法です。
フィッティングの手法のひとつに最小二乗法があります。これは、それぞれのデータとの誤差の二乗和を最小にする関数を求めるという方法です。
x,y の二次元データにおいて最小二乗法を厳密に言い換えると、当てはめる関数を y = f ( x ) としたとき、Σ ( y_i - f ( x_i ) )2 の値が最小となるような関数 f ( x ) を求めるという方法です。
n 個の二次元データが与えられます。タロー君は最小二乗法を用いてこれらのデータを y = αx の形にフィッティングし傾きを求め、その傾きの小数第 5 位を四捨五入した小数 a を求めました。しかし、タロー君はこの傾きを正しく求められたかどうか不安です。タロー君が求めた小数 a が正しいならば Yes
、そうでないならば No
と出力してください。なお、最小二乗法を利用して厳密に求めた傾き α' の小数第 5 位を四捨五入した値と、タロー君が求めた小数 a が一致したならば、タロー君の小数 a は正しいものとします。
Σ x_i y_i / Σ x_i2となります。
a
n
x_1 y_1
...
x_n y_n
タロー君が求めた小数 a が正しいならば Yes
、そうでないならば No
と 1 行で出力してください。
末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件を満たします。
・0 ≦ a ≦ 1
・a は小数で、小数第 4 位まで与えられる
・2 ≦ n ≦ 10,000
・n は整数
・0 ≦ y_i ≦ x_i ≦ 10,000 (1 ≦ i ≦ n)
・x_i, y_i は整数 (1 ≦ i ≦ n)
・同じ (x,y) の組は入力されない
0.6556
8
1 0
1 1
2 2
3 1
3 3
4 3
5 2
5 4
Yes
0.0001
2
10000 0
10000 1
Yes
0.7500
10
1 1
3 3
5 5
7 7
9 9
2 1
4 2
6 3
8 4
10 5
No