如何找到循环所需的乘数?

jos*_*shj 1 c++ math

#include <iostream>
using namespace std;
int main() {

  float result = 50.0f;
  float multiplier = 0.5f;
  float fixed_multiplier = 1.0f - multiplier * 0.001f;
  for (int i = 0; i < 1000; ++i) {
    result *= fixed_multiplier;
  }

  cout << result << endl; // 30.322 -- want approximately 25
}
Run Code Online (Sandbox Code Playgroud)

在1000次迭代之后,我想result等于multiplier*result(result==25).如何找到修改乘数(in fixed_multiplier)以获得所需结果所需的内容?

zne*_*eak 5

您的for循环由此数学方程式汇总:

result * fixed_multiplier ^ 1000 = result * multiplier
Run Code Online (Sandbox Code Playgroud)

你可以解决这个等式来找到你的答案.

您可以使用以下pow函数在C中获得相同的结果:

fixed_multiplier = pow(multiplier, 0.001);
Run Code Online (Sandbox Code Playgroud)