指数增加

时间:2014-06-03 19:42:58

标签: equation exponential

我试图实现指数增长,数小时砸我的脑袋。我尝试了二度方程,但结果不是我的预期。让我解释一下。

我有基于贷方余额的按使用付费服务。用户可以随时上传资金到他们的帐户。我想激励客户上传更多资金,以避免微支付和更高的交易费用。为了缩短你支付的金额,你获得的奖金就越多。例如,用户可以通过两种方式在其帐户中存入100美元:

  • 杰克:每笔10笔交易10美元
  • 保罗:2笔交易每笔50美元
  • Mark:1次100美元的交易
保罗应该得到比杰克更高的奖金,但与马克相比要少。现在我尝试使用这个功能。

for($amount=10;$amount<=5000;$amount +=10)
{
     $rate=0.005;
     $bonus=exp($rate*$amount);
     echo "Deposit ".$amount."$ and gain ".$bonus." bonus<br>";
}

最低存款额为10美元,最高存款额为5000美元,这就是为什么我从10循环到5000的原因。问题很简单。

Deposit 10$ and gain 1.05127109638 bonus
...
Deposit 100$ and gain 1.6487212707 bonus
...
Deposit 1000$ and gain 148.413159103 bonus
...
Deposit 2500$ and gain 268337.286521 bonus
...
Deposit 5000$ and gain 72004899337.4 bonus

对于少量而言,你得到的数量太少,对于大数量而言,得分太多。我也尝试了不同的范围,例如10到100美元,具有一定的比率,200到1000与另一个(...)但当然当你存入接近这些限制的金额时,你得到的奖金更少。这不符合逻辑。

Deposit 1000$ and gain 54.5981500331 bonus
... here starts the next range ...
Deposit 1250$ and gain 42.5210820001 bonus

我也试过这种方法:

function foo($wanted=1000, $rangeLow=10, $rangeHigh=5000){
    $increment=($rangeHigh-$rangeLow)/($wanted+1);
    $r=array();
    for ($i=$rangeLow+$increment;$i<$rangeHigh;$i+=$increment)
        $r[]=$i;
    return $r;
}

我&#34;传播&#34; 1000美元和5000美元之间的1000点奖励积分,但是当我需要一个指数时,我得到一个线性增加。可能解决方案是混合两种方法,但我不知道如何。

3 个答案:

答案 0 :(得分:2)

我认为您需要pow功能而不是exp

pow返回以exp为幂的基数。

exp将e提升为arg的力量。

e.g。

for($amount=10;$amount<=5000;$amount +=10)
{
  $rate=0.05; //adjust as needed, 0.08 makes 5000 -> about x2
  $bonus=pow($amount, $rate);
  echo "Deposit ".$amount."$ and gain ".$bonus." bonus<br>\n";
}

输出:

Deposit 10$ and gain 1.122018454302 bonus
Deposit 20$ and gain 1.1615863496415 bonus
Deposit 30$ and gain 1.1853758165593 bonus
..
Deposit 1000$ and gain 1.4125375446228 bonus
.. 
Deposit 5000$ and gain 1.5309059120639 bonus

答案 1 :(得分:0)

您是否只需要保留exp功能,但是将其乘以小于1的值?如果我的数学正确,那应该会使指数曲线变平。

答案 2 :(得分:0)

我终于设法完成了这项任务。这不是你只能用PHP实现的东西。您还需要一个等式,否则您无法控制增量。

在我的情况下,我有一个抛物线方程,给出3个点,必须定义最低值和最高值。我想给10到5000美元的进口最高奖金1000和最低0.1。我在Excel上使用矩阵反转值的矩阵产品。无论如何,我不会分享整个公式,因为它太具体了。我更愿意与你分享这个故事的PHP方面。

我想在PHP中“转换”我的Excel公式但是我花了太多时间来编写矩阵计算,然后我决定寻找现有的库。梨有一个Math_Matrix包裹。如果您不想重新编译Web服务器以获取Pear,则可以使用此PHP class。我测试了矩阵求逆并且它有效。

我建议您不要使用上述任何解决方案,除非您经常使用矩阵数学。在Excel或使用“旧”笔和纸计算所有必要值时更方便,更有效,这样您就可以传递给PHP,简单计算,如+, - ,*,^ 2等。