想做一个循环,结果只循环了一次,为毛啊?在线
double b;double[] a = new double[4] { -3, 0, 0, 5 };
b = a[3] - a[0];
a[1] = a[3] - 0.618 * b;
a[2] = a[0] + 0.618 * b;
while (System.Math.Abs((a[1] * a[1] + 2 * a[1]) - (a[2] * a[2] + 2 * a[2])) > 0.01)
{
if ((a[1] * a[1] + 2 * a[1]) < (a[2] * a[2] + 2 * a[2]))
{
a[3] = a[2];
b = a[3] - a[0];
a[1] = a[3] - 0.618 * b;
a[2] = a[0] + 0.618 * b;
}
else if ((a[1] * a[1] + 2 * a[1]) < (a[2] * a[2] + 2 * a[2]))
{
a[0] = a[1];
b = a[3] - a[0];
a[1] = a[3] - 0.618 * b;
a[2] = a[0] + 0.618 * b;
}
}