证券交易方计算

时间:2011-10-06 12:33:50

标签: javascript jquery algorithm math

我正在为我的青年俱乐部编写一个程序(http://dancingrobots.org/beurs/),根据上一轮购买的次数来计算饮料的价格(相当有趣的派对概念)。现在我计算价格的方式是这样的:

cola = cola * (vercola / pastVerCola);

可乐的价格 vercola是本轮被买入的时代。 pastVerCola是上一轮被买的时候。

饮料不能低于0.5欧元,高于10欧元。

我的两个问题是:

  • 价格波动太高(大多数机会从最大到最小 并反转)
  • 如果喝了两次0,那就错误了(0/0)

对于那些在这里强调的是完整的代码:http://pastebin.com/PsT2v2Tr

1 个答案:

答案 0 :(得分:4)

如果您想减少波动,可以使用平方根:

cola = cola * Math.sqrt(vercola / pastVerCola);

多次使用sqrt来进一步减少它。

另一种方式(我过去使用的方法)是使用固定负载抑制波动,例如

cola = cola * (vercola + 50) / (pastVerCola + 50);

这很有用,因为它还可让您在每轮中自动增加/减少价格(使用40,50,60等)

您可以将这两种效果结合起来,以获得所需的波动。 e.g。

var VER = 40;     // Constant
var PASTVER = 60; // Constant
cola = cola * Math.sqrt((vercola + VER) / (pastVerCola + PASTVER));

顺便说一句,我认为如果没有人在一轮中购买特定的饮料会导致错误。 pastVerCola将设置为零,给你一个除零误差。使用常量可以完全避免这种情况。