public static void main(String[] args) {
BigDecimal sweetGrantNum = new BigDecimal("3000000");
//初始系数
BigDecimal initCoeff = new BigDecimal("0.1");//"hashrate_addition_init_award_ratio"
//阶段数量
BigDecimal stageNum = new BigDecimal("500000");//"hashrate_addition_award_reduce_threshold_value"
//减少系数
BigDecimal subtractCoeff = new BigDecimal("0.5");//hashrate_addition_award_reduce_ratio
//减产次数
BigDecimal subtractCount = sweetGrantNum.divide(stageNum, 0, BigDecimal.ROUND_DOWN);
//当前系数
BigDecimal currentCoeff = subtractCount.compareTo(BigDecimal.ZERO) == 0 ? initCoeff : (initCoeff.multiply(subtractCoeff.pow(subtractCount.intValue())));
currentCoeff = (currentCoeff.divide(BigDecimal.ONE, 3, BigDecimal.ROUND_DOWN)).compareTo(new BigDecimal("0.001")) == 0 ? new BigDecimal("0.001") : currentCoeff;
System.out.println(currentCoeff);
}
01-16
1055
05-18
1105
03-24
7230
07-23
2738