JAVA 生成隨機數,並根據後台概率靈活生成

2021-07-09 03:16:18 字數 1496 閱讀 1032

最近碰到乙個大轉盤的業務,獎品可根據資料後台靈活設定中獎概率,看起來挺簡單的業務功能,但實現起來對我這個毫無經驗的人來說並不容易,

後面又碰到乙個根據後台概率隨機獲取不同概率的檔位積分,前面是兩個實際中業務要用到的話不多說吧,直接上我寫概率工具類吧。

1:第一種方法

/*** 根據概率 獲取隨機積分

* * @param rdm

* @return*/

//這裡的引數是乙個儲存概率集合當然你也可以用陣列

public static integer randompoints(arraylistrdm)

cdm.set(cdm.size() - 1, 1.0);

//重組後 變成0.2 0.5 0.6 1.0   四個資料的集合

double randomnumber;  

randomnumber = math.random();

//隨機生成乙個0到1的隨機數

//接下就很簡單了你只要迴圈重組集合 如果隨機數小於那個值 就是返回 i 就好了

for(int i=0;i

if(randomnumber

return i;}}

return -1; // 正常情況之下不應該到這一步的。因為cdf的最後乙個概率應該是1}

2:第二種方法

這個是網上找到的 原理也是一樣 不過這裡用法比較固定,但效率明顯比第乙個更高

public

class

mathrandom  

else

if(randomnumber >= rate0 

&& randomnumber <= rate0 + rate1)  

else

if(randomnumber >= rate0 + rate1  

&& randomnumber <= rate0 + rate1 + rate2)  

else

if(randomnumber >= rate0 + rate1 + rate2  

&& randomnumber <= rate0 + rate1 + rate2 + rate3)  

else

if(randomnumber >= rate0 + rate1 + rate2 + rate3  

&& randomnumber <= rate0 + rate1 + rate2 + rate3 + rate4)  

else

if(randomnumber >= rate0 + rate1 + rate2 + rate3 + rate4  

&& randomnumber <= rate0 + rate1 + rate2 + rate3 + rate4  

+ rate5)  

return-1

;  }  

}

JAVA生成隨機數

生成6位字母加數字的隨機數字,隨機數格式為 字母,數字,字母,數字,字母,數字 string a c,n for int i 0 i 3 i system.out.println a 生成類似qq號碼的隨機id號碼 隨機4位數 int array random rand new random for...

java 生成隨機數的

方式一 min math.random max 注意 math.random 返回值型別是double 方式二 random ra new random int random ra.nextint max nin 查閱api文件後得出,通過該方法可以得到不同資料型別的隨機值 nextboolean ...

Java基礎 生成隨機數

math.random 方法會產生0到1之間的浮點數。可以使用以下方法產生0到n的正整數 int random int math.random n 如何利用math.random 方法產生隨機乙個小寫字元呢?也就是產生97到122的隨機數,然後int轉char ascii碼 char random ...