Math 如何将一个数字增加一定百分比(比如说%10)的指数倍数(比如20),然后再将其降低到基准值?

Math 如何将一个数字增加一定百分比(比如说%10)的指数倍数(比如20),然后再将其降低到基准值?,math,formula,Math,Formula,我基本上有一个数字,比如说100 我每次都可以增加10%。所以 第一次运行时,它将变成110 第二个121 第三个133等等 我可以数一数价值增加了多少但如何在知道数量增加到100倍的情况下将数量大幅减少? 有没有办法用简单的数学运算,比如**来代替循环当前值被改变10%的次数 我知道当我需要基本值时,我可以将其存储在附加列中,如base\u number=100或其他什么,但我想知道是否可以通过一次线性计算来实现?所以你的基本问题是,在已知n的情况下,如何反转并找到x\u 0,以及: x_

我基本上有一个数字,比如说
100

我每次都可以增加10%。所以

  • 第一次运行时,它将变成
    110
  • 第二个
    121
  • 第三个
    133
    等等
我可以数一数价值增加了多少但如何在知道数量增加到100倍的情况下将数量大幅减少?

有没有办法用简单的数学运算,比如**来代替循环当前值被改变10%的次数


我知道当我需要基本值时,我可以将其存储在附加列中,如
base\u number=100
或其他什么,但我想知道是否可以通过一次线性计算来实现?

所以你的基本问题是,在已知
n
的情况下,如何反转并找到
x\u 0
,以及:

x_n = x_0 * 1.1^n
看起来我们可以简单地除以
1.1^n

x_n/(1.1^n) = x_0
因此,您可以使用
pow(1.1,n)
计算
1.1^n
,并将
x_n
(您的“增加”值)除以该值,或者只是循环并减少,就像您增加的那样:

//1.
$original = $increased/pow(1.1, n);

//2.
$original = $increased;
for ($i = 0; $i < n; $i++) {
    $original = $original / 1.1;
}

所以你的基本问题是,如果已知
n
,你如何倒置并找到
x0
,以及:

x_n = x_0 * 1.1^n
看起来我们可以简单地除以
1.1^n

x_n/(1.1^n) = x_0
因此,您可以使用
pow(1.1,n)
计算
1.1^n
,并将
x_n
(您的“增加”值)除以该值,或者只是循环并减少,就像您增加的那样:

//1.
$original = $increased/pow(1.1, n);

//2.
$original = $increased;
for ($i = 0; $i < n; $i++) {
    $original = $original / 1.1;
}

让我们举一个简单的例子,试着找出一个公式:

100 * 1.10 = 110;
110 * 1.10 = 121;
121 * 1.10 = 133.1;
bn * iv^3 = bn4;
所以现在我们有:

basic_number (will be bn) * increase_value (will be iv) = basic_number2;
bn2 * iv = bn3;
bn3 * iv = bn4;
我们也可以这样写:

bn * iv = bn2;
bn * iv * iv = bn3;
bn * iv * iv * iv = bn4;
所以我们有了一个公式的开头:

100 * 1.10 = 110;
110 * 1.10 = 121;
121 * 1.10 = 133.1;
bn * iv^3 = bn4;
现在,根据您的帖子,您将获得以下数据:

X : the number of increase
bnX : the basic number increase X time
iv : the increase value
您想根据这些值找到bn:

bn * iv^X = bnX;
bn = bnX / iv^X;
bn = bnX / (iv * iv * iv ... * iv); // X time
因此,使用PHP时,它可以如下所示:

$X = /* the number of incease */;
$bnX = /* the basic number increase X time */;
$iv = /* the increase value */;

for($i = 0; $i < $X; $i++) {
    $bnX = $bnX / $iv;
}

编辑

// 2/ Using pow
function getBasicNumber($bnX, $X, $iv) {
    return $bnX / pow($X, $iv);
}

// 3/ Using '**'
function getBasicNumber($bnX, $X, $iv) {
    return $bnX / $X**$iv;
}

这样,您只需执行以下操作:

echo getBasicNumber(133.1, 3, 1.10); // 100 here for example

希望清楚?但是,与其说这是一道编程题,不如说这是一道数学题。让我们举一个简单的例子,试着找出一个公式:

100 * 1.10 = 110;
110 * 1.10 = 121;
121 * 1.10 = 133.1;
bn * iv^3 = bn4;
所以现在我们有:

basic_number (will be bn) * increase_value (will be iv) = basic_number2;
bn2 * iv = bn3;
bn3 * iv = bn4;
我们也可以这样写:

bn * iv = bn2;
bn * iv * iv = bn3;
bn * iv * iv * iv = bn4;
所以我们有了一个公式的开头:

100 * 1.10 = 110;
110 * 1.10 = 121;
121 * 1.10 = 133.1;
bn * iv^3 = bn4;
现在,根据您的帖子,您将获得以下数据:

X : the number of increase
bnX : the basic number increase X time
iv : the increase value
您想根据这些值找到bn:

bn * iv^X = bnX;
bn = bnX / iv^X;
bn = bnX / (iv * iv * iv ... * iv); // X time
因此,使用PHP时,它可以如下所示:

$X = /* the number of incease */;
$bnX = /* the basic number increase X time */;
$iv = /* the increase value */;

for($i = 0; $i < $X; $i++) {
    $bnX = $bnX / $iv;
}

编辑

// 2/ Using pow
function getBasicNumber($bnX, $X, $iv) {
    return $bnX / pow($X, $iv);
}

// 3/ Using '**'
function getBasicNumber($bnX, $X, $iv) {
    return $bnX / $X**$iv;
}

这样,您只需执行以下操作:

echo getBasicNumber(133.1, 3, 1.10); // 100 here for example


希望清楚?不过,这更像是一道数学题,而不是一道编程题,你的问题不是关于编程,而是关于数学:/@Mickeelleger我想可能是这样true@MickaelLeger谢谢你的编辑,我投票结束这个问题,因为它不是关于编程的。@HighPerformanceMark虽然我将使用PHP,但所有答案都可以用任何语言实现,所以我想这无关紧要。不管怎样,我把标签改成了“正确的”标签,你的问题不是关于编程,而是关于数学:/@Mickeelleger我想可能是这样true@MickaelLeger谢谢你的编辑,我投票结束这个问题,因为它不是关于编程的。@HighPerformanceMark虽然我将使用PHP,但所有答案都可以用任何语言实现,所以我想这无关紧要。不管怎样,我把标签改成了“正确的”。是的,谢谢你,它确实有用!通过将值(100)指数增加10%20倍(672)并使用第1个公式对其进行测试,结果就像只有一行的符咒!还有一个问题:如何使用一条直线将相同的数字(100)指数增加10%?我的答案中的第一个方程也可以用于增量过程中的一条直线。只需将
1.1^n
替换为
pow(1.1,n)
是的,谢谢!顺便说一句,从PHP56+你可以像4**4那样**操作,它比幂函数更快更方便,但做的事情完全一样!是的,谢谢,它确实有用!通过将值(100)指数增加10%20倍(672)并使用第1个公式对其进行测试,结果就像只有一行的符咒!还有一个问题:如何使用一条直线将相同的数字(100)指数增加10%?我的答案中的第一个方程也可以用于增量过程中的一条直线。只需将
1.1^n
替换为
pow(1.1,n)
是的,谢谢!顺便说一句,从PHP56+你可以像4**4那样**操作,它比幂函数更快更方便,但做的事情完全一样!我总是通过做$n+($n/100)*prcnt来提取百分比值,但这$n*1.10的东西很好!你的答案也和@CollinD一样正确,但我认为他有一个更好。谢谢!我很好,他的anwser更好,因为它更“编程”导向,使用
pow
(这是我以前不知道的,顺便说一句,学习一些新东西还是很酷的!),我的更了解逻辑:)顺便说一句,在PHP5.6和更高版本中,你可以使用4**4 op而不是pow(4,4)谢谢你提供的信息,我编辑我的anwser只是为了显示它:)我总是通过做$n+($n/100)来提取百分比值*prcnt,但是这个$n*1.10的东西非常好!你的答案也和@CollinD一样正确,但我认为他有一个更好。谢谢!我很好,他的anwser更好,因为它更“编程”,使用
pow
(我以前不知道,顺便说一句,学点新东西仍然很酷!),我的更了解逻辑:)顺便说一句,在PHP5.6及更高版本中,您可以使用4**4 op而不是pow(4,4)。谢谢您提供的信息,我编辑我的anwser只是为了显示:)