java生成隨機數(shù)的常用方法分析
本文實例講述了java生成隨機數(shù)的常用方法。分享給大家供大家參考,具體如下:
前因:
經(jīng)常性的,測試一些功能時都需要造一些假數(shù)據(jù),每次都上網(wǎng)來查一下怎么生成隨機數(shù)。這回我把查到的方法自己整理一下,下次在用不用到處找了。
生成隨機數(shù)的幾種方法:
1. 使用Math.random()生成隨機數(shù)
直接貼幾個小方法
/** * 獲取0.0-1.0之間的隨機小數(shù) */ private double test1() { double num = Math.random(); return num; } /** * 獲取兩個數(shù)之間的隨機小數(shù) */ private double test2(int min, int max) { return min + Math.random() * (max - min); } /** * 獲取兩個數(shù)之間的隨機整數(shù) */ private int test3(int min, int max) { return (int) (min + Math.random() * (max - min)); }
2. 使用java.util.Random類生成隨機數(shù)
簡單介紹類中的幾個方法
方法:
public int nextInt() :隨機生成一個int型數(shù)值
public int nextInt(int n) :隨機生成一個 >=0 并且 <n 的int型數(shù)值,要求n>0
public long nextLong() :隨機生成一個long型數(shù)值
public float nextFloat() :隨機生成一個float型數(shù)值
public double nextDouble() :隨機生成一個double型數(shù)值
public double nextGaussian() :隨機生成一個符合正態(tài)分布的double型數(shù)值,數(shù)值基本在0左右搖擺,有人做了200萬次循環(huán),驗證了值在-6~6之間
public boolean nextBoolean() :隨機生成一個boolean類型的值
構(gòu)造:
public Random()
public Random(long seed)
問:seed是干嘛用的?
seed 是 Random 生成隨機數(shù)時使用的參數(shù)。
無參構(gòu)造函數(shù)每次都使用當前時間作為種子,隨機性更強。
而含參的構(gòu)造函數(shù)其實是偽隨機,更有可預(yù)見性。
3. 使用System.currentTimeMillis()取模
比如想取1000以內(nèi)的隨機數(shù),就System.currentTimeMillis()%1000
。
PS:這里再為大家提供幾款功能類似的在線工具供大家參考:
在線隨機數(shù)字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
在線隨機字符/隨機密碼生成工具:
http://tools.jb51.net/aideddesign/rnd_password
高強度密碼生成器:
http://tools.jb51.net/password/CreateStrongPassword
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java字符與字符串操作技巧總結(jié)》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
MyBatis-Plus多表聯(lián)查的實現(xiàn)方法(動態(tài)查詢和靜態(tài)查詢)
本文用示例介紹使用MyBatis-Plus進行多表查詢的方法,包括靜態(tài)查詢和動態(tài)查詢,通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2022-03-03Elasticsearch8.1中的Script使用實例深入解讀
這篇文章主要為大家介紹了Elasticsearch8.1中的Script使用實例深入解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10SpringCloud項目的log4j2漏洞解決方案詳解流程
很多小伙伴因為Log4j2的驚爆0Day漏洞一時束手無策,這里提供最終解決方案可以進行一個版本號的升級,感興趣的朋友來看看吧2022-04-04SpringAop @Around執(zhí)行兩次的原因及解決
這篇文章主要介紹了SpringAop @Around執(zhí)行兩次的原因及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07Java調(diào)用MySQL存儲過程并獲得返回值的方法
這篇文章主要介紹了Java調(diào)用MySQL存儲過程并獲得返回值的方法,實例分析了java實現(xiàn)MySQL存儲過程的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07