第一篇博客:权重法抽奖。
文采不好,见谅。因项目需求设置返回整型,可自定义数据类型,话不多说,关于权重法相关代码:
public static void main(String[] args) {
int[] table = new int[]{120,90,50,30,10};
int[][] table1 = new int[][]{{1,10},{10,20},{20,30},{30,40},{40,50}};
int result = RandomByWeight(table,table1);
System.out.println("result = " + result);
}
/****************************** 根据权重生成随机数 ************************************/
/**
* 根据权重生成随机数
* @param weights 权重
* @param datas 对应的数据
* @return
*/
public static int RandomByWeight(int[] weights,int[][] datas)
{
int sum = 0;
for(int i = 0; i < weights.length; i++){
sum += weights[i];
}
int number_rand = ((int) (Math.random() * (sum - 0))) + 0;
System.out.println("number_rand = " + number_rand);
int sum_temp = 0;
for(int i = 0; i < weights.length; i++)
{
sum_temp += weights[i];
if(number_rand <= sum_temp){
return getMoney(datas[i][1],datas[i][0]);
}
}
return -1;
}
/**
* 随机数字
*/
public static int getMoney(int max,int min){
int money = ((int) (Math.random() * (max - min))) + min;
return money;
}
**一个技术新人的第一篇博客,不知道对于各位大牛有没有用,欢迎指导!拒接撕X!
旨在向各位大神们学习技术。**