隨機抽取獎品
獎品抽取概率
10000元
90%28888元
4%66666元
3%88888元
2%100000元
1%整體思路:
獎品集合 + 概率比例集合
將獎品按集合中的順序概率計算成所佔比例區間,放入比例集合。並產生乙個隨機數加入其中,進行排序。
排序後隨機數落在那個區間就表示那個區間的獎品被抽中。
返回的隨機數在集合中的索引,該索引就是獎品集合的中的索引。
比例區間的計算通過概率相加獲得。
//獎品的實體類
public class gift
實現方法:
public class drawlotteryutil
return draw(orgproblist);
}return -1;
}public static int draw(listgiftproblist)
if(sumrate != 0)
// 隨機生成乙個隨機數,並排序
double random = math.random();
sortratelist.add(random);
collections.sort(sortratelist);
// 返回該隨機數在比例集合中的索引
return sortratelist.indexof(random);
}return -1;
}//測試
public static void main(string args)
}}
測試結果:
獎品:10000元***抽中的概率:0.9
獎品:10000元***抽中的概率:0.9
獎品:10000元***抽中的概率:0.9
獎品:10000元***抽中的概率:0.9
獎品:10000元***抽中的概率:0.9
獎品:10000元***抽中的概率:0.9
獎品:66666元***抽中的概率:0.03
獎品:28888元***抽中的概率:0.04
獎品:10000元***抽中的概率:0.9
獎品:28888元***抽中的概率:0.04
獎品:10000元***抽中的概率:0.9
獎品:88888元***抽中的概率:0.02
獎品:10000元***抽中的概率:0.9
獎品:10000元***抽中的概率:0.9
獎品:10000元***抽中的概率:0.9
獎品:10000元***抽中的概率:0.9
獎品:10000元***抽中的概率:0.9
獎品:10000元***抽中的概率:0.9
獎品:10000元***抽中的概率:0.9
獎品:10000元***抽中的概率:0.9
抽取JDBC工具類 JDBCUtils
1.註冊驅動也抽取 2.抽取乙個方法獲取連線物件 需求 不想傳遞引數 麻煩 還得保證工具類的通用性。解決 配置檔案 jdbcutils工具類 2020年10月27日 20 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2...
Python實現Excel隨機抽取數
有這樣一組資料 現在要隨機抽取十個數字,如下 import sys import xlrd import random print pm2.5 天津 開啟excel workbook xlrd.open workbook 2.xls 進入sheet excel sheet workbook.shee...
Java 隨機抽取List集合的資料
查詢前天所有的報廢資料 return public mapfindallaudit catch exception e return map 每天凌晨的0點10分更新資料 public void updateflag catch exception e function 從list中隨機抽取若干不重...