这是一个广泛的问题,有一个具体的例子。我的问题是,您如何弄清楚如何计算循环中的算法或表达式?
在下面的示例中,我想出了如何使用一个循环来计算一个平方根,使用一个带有巴比伦算法的计数器,它似乎工作正常。
但我不知道如何在一定程度上评估它,比如在 .01 内而不使用计数器。我在网上看到其他人在没有柜台的情况下这样做,但我却无法做到。
这是我的计数器版本:
int count(20);
while (count > 0 )
{
if (guess <= (guess * p) + guess)
prevGuess = guess;
else
r = input / guess;
guess = (guess + r) / 2.0;
count -= 1;
cout << "\nGuess = " << guess;
}
我试过做这样的事情:
while ((guess - lastGuess) / lastGuess)
和
while(guess - lastGuess * .01)
但我要么只得到一次交互,要么得到一个无限循环。
确定如何在循环内评估任何算法的好方法是什么?
我的意思不仅仅是这个小程序,我的意思是任何东西,甚至像 x + y = 2 这样的东西。
你会做这样的事情吗:
while(x + y !=2) {}
谢谢!
最佳答案
通常这种计算会在下一次迭代对值的改变不大时停止;例如
for(;;) {
double next_v = (v + (n / v)) / 2;
if (fabs(v - next_v) < eps) break; // We got there
v = next_v;
}
其中 eps
是您希望结果的准确性。
关于c++ - 找出一个表达式来评估一个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28486686/