
void solve(){
set<pair<double,double>>s;
for(int x1=0;x1<20;x1++){
for(int y1=0;y1<21;y1++){
for(int x2=0;x2<20;x2++){
if(x1==x2) continue;
for(int y2=0;y2<21;y2++){
double k=(y2-y1*1.)/(x2-x1*1.);
double b=(x2*y1-x1*y2)/(1.*x1-x2);
s.insert({k,b});
}
}
}
}
cout<<s.size()+20;
}
y=kx+b
k=deltay/deltax
直接计算b=y1-kx1,b的误差会稍大,因为k本就是带有误差的值,再直接用y1-k*x1误差会更大。
技巧性处理:k用deltay/deltax表示,代入上式子,通分一下,使得误差降低在最后的除法计算上
25/3/4
416

被折叠的 条评论
为什么被折叠?



