一个研究生想了一天没想出什么结果来的题目...

wyl0502 2005-04-14 11:24:32
加精
已知正实数a和b,有如下代码,求无穷长的时间之后a,b的值。
Number a,b;
Number c;

while(a!=b){
c=(a+b)/2;
b=sqrt(a*b);
a=c;
}
a==?,b==?
...全文
642 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjjf 2005-05-14
  • 打赏
  • 举报
回复
mark
flyingdancing2005 2005-05-06
  • 打赏
  • 举报
回复
up.....
thincterii 2005-04-16
  • 打赏
  • 举报
回复
就是(a+b)/2
因为 squt(a*b) <= (a+b)/2
a = (a+b)/2

n次循环, a, b的值最终逼近 (a+b)/2
「已注销」 2005-04-15
  • 打赏
  • 举报
回复
学习。学习。不过学不懂啊。。。
「已注销」 2005-04-15
  • 打赏
  • 举报
回复

sqrt((a^2+b^2)/2) >= (a+b)/2 >= 结果 >= sqrt(ab)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
wyl0502 2005-04-15
  • 打赏
  • 举报
回复
gumbour:
我给你一个反例:a趋近于0,b随便取个大于0的,,怎么样?
我试过了b==1的,结果也趋近于0,可是sqrt((a*a+b*b))/2)显然不会。。。

请mathe解释一下?应该可以用积分表达式表达出来吧?那怎么表示呢?
gumbour 2005-04-15
  • 打赏
  • 举报
回复
实践是检验真理的唯一标准,
如果7楼能举出一个a = b = sqrt((a*a+b*b)/2)
的反例出来我就服了你
dengsf 2005-04-15
  • 打赏
  • 举报
回复
学习~
只能证明 lim a = lim b
mathe 能解释一下吗?
zxystar 2005-04-15
  • 打赏
  • 举报
回复
最后应该是1/(2^2)+1/(2^3)+1/(2^4)......+1/(2^(n+2))
a和b一直是交替的,无限趋进于c
等比公式求极限就是结果吧
mathe 2005-04-15
  • 打赏
  • 举报
回复
结果是一个椭圆积分的值,没有初等表达式
gumbour 2005-04-15
  • 打赏
  • 举报
回复
呵呵
拿笔算了一下应该是
a = b = sqrt((a*a+b*b)/2)
经过编程证实是正确的
不过还讲不出什么道理出来
也许是两种平均值结合吧 呵呵
javan 2005-04-15
  • 打赏
  • 举报
回复
公式化,然后求极限。
wlwlwl 2005-04-15
  • 打赏
  • 举报
回复
s和b的取值范围是不是要给出,没有范围的,计算机如何有穷计算
robinzsy 2005-04-15
  • 打赏
  • 举报
回复
对不起,我弄错了。
robinzsy 2005-04-15
  • 打赏
  • 举报
回复
a = 1, b = 1;
wyl0502 2005-04-15
  • 打赏
  • 举报
回复
谢谢mathe()的回复,没想到居然还有这个函数。。。http://documents.wolfram.com/v5/TheMathematicaBook/AdvancedMathematicsInMathematica/MathematicalFunctions/3.2.11.html:

ArithmeticGeometricMean[a, b] gives the arithmetic-geometric mean (AGM) of two numbers a and b. This quantity is central to many numerical algorithms for computing elliptic integrals and other functions. For positive reals and the AGM is obtained by starting with , , then iterating the transformation , until to the precision required.

http://functions.wolfram.com/EllipticFunctions/ArithmeticGeometricMean/06/01/01/
里有AGM(1,b)的表达式,超级复杂。。



mathe 2005-04-15
  • 打赏
  • 举报
回复
更多的表达式
http://functions.wolfram.com/EllipticFunctions/ArithmeticGeometricMean/06/01/
mathe 2005-04-15
  • 打赏
  • 举报
回复
http://functions.wolfram.com/EllipticFunctions/ArithmeticGeometricMean/07/01/01/0001/MainEq1.gif
gumbour 2005-04-15
  • 打赏
  • 举报
回复
对不起 发现一个错误
我在想想
gumbour 2005-04-15
  • 打赏
  • 举报
回复
回复人: wyl0502() ( ) 信誉:100 2005-04-15 12:11:00 得分: 0


gumbour:
我给你一个反例:a趋近于0,b随便取个大于0的,,怎么样?
我试过了b==1的,结果也趋近于0,可是sqrt((a*a+b*b))/2)显然不会。。。

请mathe解释一下?应该可以用积分表达式表达出来吧?那怎么表示呢?


我说过了,实践是检验真理的唯一标准
a = 0.00000000000001;;
b = 100;
最后
a = b = sqrt((a*a+b*b))/2) = 4.109057

当然float可以表示出来的数是有最小限制的
当然 如果你要用0.000000000000000000000000000000000000000000001来做反例,我无话可说

这是我的程序,不要只靠想象力说话
#include <stdio.h>
#include <math.h>

int main()
{
double a,b,c;
a = 0.00000000000001;
b = 100;

int i=0;
while(a != b){
c=(a+b)/2;
b=sqrt(a*b);
a=c;
}

printf("%f\n%f\n%f",a,b,sqrt((a*a+b*b)/2));
return 0;
}
加载更多回复(1)

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧