Если вы хотите уменьшить колебание, вы можете использовать квадратный корень:
cola = cola * Math.sqrt(vercola / pastVerCola);
Используйте sqrt несколько раз, чтобы уменьшить его еще больше.
Другой способ (который я использовал вв прошлом), чтобы ослабить колебания, используя фиксированную нагрузку, например
cola = cola * (vercola + 50) / (pastVerCola + 50);
. Это полезно, поскольку оно также позволяет автоматически увеличивать / уменьшать цену с каждым раундом (используя 40, 50, 60 и т. д..)
Вы можете объединить эти два эффекта, чтобы получить требуемое колебание.например,
var VER = 40; // Constant
var PASTVER = 60; // Constant
cola = cola * Math.sqrt((vercola + VER) / (pastVerCola + PASTVER));
Кстати, я думаю, что ошибка вызвана тем, что никто не покупает определенный напиток в раунде.pastVerCola будет установлен на ноль, что даст вам ошибку деления на ноль.Использование констант полностью исключает эту ситуацию.