Java實現隨機抽取獎品工具類

2021-08-28 12:56:55 字數 1429 閱讀 8824

隨機抽取獎品

獎品抽取概率

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中隨機抽取若干不重...