Browse Source

[砍价][修改]:砍价算法修改

release_toaliyun_real
Stormeye Wu 7 years ago
parent
commit
68821a363a
2 changed files with 6 additions and 6 deletions
  1. +3
    -5
      mallinkService/src/main/java/com/iformall/utils/PressUtils.java
  2. +3
    -1
      mallinkService/src/main/java/com/iformall/utils/press/stateless/StatelessPingReduceRule.java

+ 3
- 5
mallinkService/src/main/java/com/iformall/utils/PressUtils.java View File

@@ -30,7 +30,7 @@ public class PressUtils {
BigDecimal lt = BigDecimal.valueOf(left_total* 1.0D / 100);
StatelessReduceRule rule = new DefaultStatelessReduceRule();
BigDecimal current = rule.getReduce(tt, lt, limit_num,limit_num - limit_index, scale);
return current.intValue() * 100;
return current.multiply(BigDecimal.valueOf(100)).intValue();
}

/**
@@ -46,13 +46,11 @@ public class PressUtils {
BigDecimal lt = BigDecimal.valueOf(left_total* 1.0D / 100);
StatelessReduceRule rule = new StatelessPingReduceRule();
BigDecimal current = rule.getReduce(tt, lt, limit_num, limit_num - limit_index, scale);
return current.intValue() * 100;
return current.multiply(BigDecimal.valueOf(100)).intValue();
}

public static void main(String[] args) {
int IValue = randomPressValue(2000, 300, 5, 4);
System.out.println(IValue);
int iValue = stateLessPressValue( 2000, 400, 5, 4);
int iValue = stateLessPressValue( 2000, 2000, 5, 0);
System.out.println(iValue);
}



+ 3
- 1
mallinkService/src/main/java/com/iformall/utils/press/stateless/StatelessPingReduceRule.java View File

@@ -18,8 +18,10 @@ public class StatelessPingReduceRule implements StatelessReduceRule {
if (totalReduceTimes == 1) {
return totalReduce;
}
// 前1/3的人
Double thirdDeduceTimesD = Math.ceil(totalReduceTimes * 1.0D/ 3);
int firstN = Math.max(thirdDeduceTimesD.intValue(), 1);

int firstN = Math.max(totalReduceTimes / 3, 1); // 前1/3的人
BigDecimal halfReduce = totalReduce.divide(BigDecimal.valueOf(2), RoundingMode.HALF_EVEN).setScale(scale, RoundingMode.HALF_EVEN);
int leftN = totalReduceTimes - firstN;
BigDecimal theOtherHalf = totalReduce.subtract(halfReduce);


Loading…
Cancel
Save