杭电ACM 3809的详细解题思路是什么

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/07 19:20:09

杭电ACM 3809的详细解题思路是什么
杭电ACM 3809的详细解题思路是什么

杭电ACM 3809的详细解题思路是什么
迭代,原式为
X = x – sqrt(y) (1)
Y = y – sqrt(x) (2)
将(2)带入(1)得:
X = x - sqrt(Y + sqrt(x))
也即:
x = X + sqrt(Y + sqrt(x))
构造f(x) = X + sqrt(Y + sqrt(x))
显然此时所求x即f(x)的不动点 ,于是通过迭代可以找到该不动点(初值设为0).
对于y作同样的处理即可得.
关于不动点理论:http://zh.wikipedia.org/wiki/%E4%B8%8D%E5%8A%A8%E7%82%B9
代码如下:
#include
#include
int main() {
int T ;
scanf("%d" , &T) ;
double X , Y ;
for(int cas = 1 ; cas 1e-9) x = X + sqrt(Y + sqrt(x)) ;
while(fabs(y - (Y + sqrt(X + sqrt(y)))) > 1e-9) y = Y + sqrt(X + sqrt(y)) ;
printf("Case %d: %.6lf %.6lf\n" , cas , x , y) ;
}
return 0 ;
}