0

我被困在一个简单的计算中,我曾经在 for 循环中迭代计算。但现在我不想再用循环来计算它了。

// What I know
double x0 =  p*J;
double x1 =  p*J -  p*J*J;
double x2 =  p*J -  p*J*J - p*J*J*J;
double x3 =  p*J -  p*J*J - p*J*J*J - p*J*J*J*J;

// What I want to know
double xi =  ?;

如何在不使用循环的情况下计算 xi?

4

1 回答 1

2

我们简化:

xi = pJ - pJ^2 - ... - pJ^(i+1)
   = pJ(1 - J - ... - J^i)
   = pJ(2 - 1 - J - ... - J^i)
   = pJ(2 - (1 + J + ... + J^i))

Wolfram Alpha 为我们提供1 + J + ... + J^i; 它是(J^(i + 1) - 1) / (J - 1)。我们将其代入我们的公式:

xi = pJ(2 - (J^(i + 1) - 1) / (J - 1))

您可以尝试以代数方式简化它,但您已经得到了 xi 的封闭式表达式。

于 2014-06-27T16:44:10.243 回答