您的位置:首页 > 其它

pku1183 反正切函数的应用

2012-03-21 16:32 232 查看
给出算式{1/a = (1/b + 1/c) / (1 - 1/(b*c)}中的a,求算式中b和c使b+c最小.a,b,c均大于0。

经过一系列的数学推导,可以得到b的范围是{0 < b <= a + sqrt(a^2 + 1)}

又从某OIer的博客中看到令f(b)= b + c

即f(b)=b + (ab + 1) / (b - a)

求导得到f(b)' = 1 - (a^2 + 1) / (b - a)^2,

在区间(a, a + sqrt(a^2 + 1))上恒小于0,所以f(b)单调递减。

View Code

program pku1183(input,output);
var
x,y : int64;
begin
readln(x);
y:=x+trunc(sqrt(x*x+1));
while true do
begin
if ((x*y+1) mod (y-x)=0) then
begin
writeln(y+((x*y+1) div (y-x)));
break;
end;
dec(y);
end;
end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: