package com.bill99.rm.bridge.util;
import java.math.BigDecimal;
import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;
import java.util.Map.Entry;
public class TestSort {
public static void main(String[] args) {
Dog dog = new Dog();
double win = 1.42;
double equal= 3.55;
double fail = 5.75;
//返还率
double totalq = win*fail*equal/(win*equal+equal*fail+win*fail);
//概率计算
double win_pre = totalq/win;
double equal_pre = totalq/equal;
double fail_pre= totalq/fail;
int win_n;
int fail_n;
int equal_n;
double totalWin;
Map<Object, Dog> WINmap = new TreeMap(dog);
for (win_n = 0;win_n<10;win_n++){
for (fail_n=0;fail_n<10;fail_n++){
for (equal_n=0;equal_n<10;equal_n++){
totalWin = win_n*win*win_pre+equal*equal_n*equal_pre+fail*fail_n*fail_pre;
Dog winObj = new Dog();
winObj.setWin_n(win_n);
winObj.setEqual_n(equal_n);
winObj.setFail_n(fail_n);
winObj.setTotalWin(totalWin);
int toatal_n = win_n+equal_n+fail_n;
double maxWin = totalWin/toatal_n;
String id = win_n+""+equal_n+""+fail_n;
winObj.setMaxWin(maxWin);
winObj.setToatal_n(toatal_n);
if(toatal_n>10&&toatal_n<20){
WINmap.put(winObj, winObj);
}
}
System.out.println(WINmap.size());
}
System.out.println(WINmap.size());
}
System.out.println(WINmap.size());
for (Entry<Object, Dog> entry : WINmap.entrySet()) {
dog = (Dog) entry.getValue();
System.out.println("压胜注数:"+dog.getWin_n()+"压平注数:"+dog.getEqual_n()+"压败注数:"+dog.getFail_n()+"概率赢金额:"+dog.getTotalWin()+"/n总投入"+dog.getToatal_n()+"赢/投入比"+dog.getMaxWin());
}
}
}
/**
*
* 必须实现“Comparator”接口
*
* 以age属性进行排序(当然也可以根据多个属性组合排序,此处不再演示)
*
*/
class Dog implements Comparator<Dog> {
private int win_n;
private int fail_n;
private int equal_n;
private double totalWin;
private int toatal_n ;
private double maxWin;
private int id ;
public Dog() {
}
public Dog(int win_n, int fail_n, int equal_n, double totalWin, int toatal_n, double maxWin, int id) {
super();
this.win_n = win_n;
this.fail_n = fail_n;
this.equal_n = equal_n;
this.totalWin = totalWin;
this.toatal_n = toatal_n;
this.maxWin = maxWin;
this.id = id;
}
public int compare(Dog o1, Dog o2) {
if (o1.maxWin < o2.maxWin&&o1.getToatal_n()<o2.toatal_n) {
return -1;
} else if (o1.maxWin == o2.maxWin&&o1.getToatal_n()>o2.toatal_n) {
return 0;
} else
return 1;
}
public int getWin_n() {
return win_n;
}
public void setWin_n(int win_n) {
this.win_n = win_n;
}
public int getFail_n() {
return fail_n;
}
public void setFail_n(int fail_n) {
this.fail_n = fail_n;
}
public int getEqual_n() {
return equal_n;
}
public void setEqual_n(int equal_n) {
this.equal_n = equal_n;
}
public double getTotalWin() {
return totalWin;
}
public void setTotalWin(double totalWin) {
this.totalWin = totalWin;
}
public int getToatal_n() {
return toatal_n;
}
public void setToatal_n(int toatal_n) {
this.toatal_n = toatal_n;
}
public double getMaxWin() {
return maxWin;
}
public void setMaxWin(double maxWin) {
this.maxWin = maxWin;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}