根据输入堆叠百分比减少(java脚本)

时间:2017-10-22 13:54:05

标签: javascript math

我确信这对于数学上比我更好的人来说足够简单,但解决方案正在逃避我。

我需要一个数字,块链高度,每隔50万块,将奖励减少5%。

原始奖励是每块3。因此,块500001将是2.85,块1,000,001将是2.7075,块1,500,001将是2.572125等。

这种情况一直阻止30,000,000,所以使用案例或者如果不实际。

1 个答案:

答案 0 :(得分:3)

我无法确定你是否需要持续减少,或者突然之间"在穿越下一个500,000之后减少(例如,499,999区块的奖励仍为3%?)。

假设你需要"突然"减少,你首先计算减少的数量。

var blocks = 10000000; // 10 million, just as an example
var reductions = Math.floor(blocks / 500000);

然后将减少额用于奖励

var reward = 0.03 * Math.pow(0.95, reductions);

这将取消5%(乘以0.95)正确的次数。结果将是十进制百分比(如0.0285表示2.85%等)。

如果您需要持续缩减,实际上只需从上面的缩减计算中删除Math.floor