Java編程一個(gè)隨機(jī)數(shù)產(chǎn)生模塊代碼分享
java隨機(jī)數(shù)的產(chǎn)生比較簡(jiǎn)單,可以通過(guò)
Random rand = new Random(47); System.out.println(rand.nextInt());
產(chǎn)生,也可以通過(guò)以下產(chǎn)生:
double d = Math.random();
當(dāng)然代碼中前者由于使用了固定的種子47,所以每次的值都是一樣的,也可以使用
Random rand = new Random(); System.out.println(rand.nextInt());
而對(duì)于代碼2則產(chǎn)生的是double的隨機(jī)數(shù)。
下面說(shuō)下關(guān)于3的方式,目前有個(gè)需求就是需要產(chǎn)生4為隨機(jī)數(shù),用于短信注冊(cè)碼的生成,那么就需要使用到隨機(jī)數(shù),于是使用代碼3來(lái)實(shí)現(xiàn)。若之間使用該代碼那么結(jié)果并不能滿(mǎn)足條件,那么通過(guò)以下方式來(lái)實(shí)現(xiàn):
//方式一
Random rand = new Random();
for (int i = 0; i < 4; i++){
System.out.print(Math.abs(rand.nextint() % 10));
}
//以上通過(guò)rand.next產(chǎn)生隨機(jī)數(shù),因可能存在負(fù)數(shù),用Math.abs取絕對(duì)值,然后取模10,產(chǎn)生的結(jié)果在10以?xún)?nèi)
//方式二
Random rand = new Random();
for (int i = 0; i < 4; i++){
System.out.print(rand2.nextint(10));
}
//以上使用api直接產(chǎn)生10以?xún)?nèi)的隨機(jī)數(shù)
自己最近寫(xiě)的一個(gè)JAVA隨機(jī)數(shù)模塊,封裝了各種與隨機(jī)相關(guān)的實(shí)用方法,特拿來(lái)分享。
這里面沒(méi)什么高科技的東西,函數(shù)命名也能看出來(lái)用途,所以就簡(jiǎn)單的注釋一下好了,有什么問(wèn)題可以留言。
源代碼(RandomSet.java):
import java.awt.Color;
import java.util.Collection;
import java.util.Iterator;
import java.util.Random;
public class RandomSet
{
static Random random = new Random();
//獲得一個(gè)給定范圍的隨機(jī)整數(shù)
public static int getRandomNum(int smallistNum,int BiggestNum)
{
return (Math.abs(random.nextint())%(BiggestNum-smallistNum+1))+smallistNum;
}
//獲得一個(gè)隨機(jī)的布爾值
public static Boolean getRandomBoolean()
{
return (getRandomNum(0,1) == 1);
}
//獲得一個(gè)隨機(jī)在0~1的浮點(diǎn)數(shù)
public static float getRandomFloatIn_1()
{
return (float)getRandomNum(0,1000)/1000;
}
//獲得一個(gè)隨機(jī)的顏色
public static Color getRandomColor()
{
float R = (float)getRandomNum(0,255)/255;
float G = (float)getRandomNum(0,255)/255;
float B = (float)getRandomNum(0,255)/255;
return new Color(R,G,B);
}
//以一定概率返回一個(gè)布爾值
public static Boolean getRate(int rate)
{
if(rate<0 || rate > 100)
{
return false;
} else
{
if(getRandomNum(0,100)<rate)
{
return true;
} else
{
return false;
}
}
}
//返回給定數(shù)組中的一個(gè)隨機(jī)元素
public static <T> T getElement(T[] t)
{
int index = getRandomNum(0,t.length - 1);
return t[index];
}
//返回給定Collection中的一個(gè)隨機(jī)元素
public static <T> T getElement(Collection<? extends T> c)
{
int atmp = getRandomNum(0,c.size() - 1);
Iterator<? extends T> iter = c.iterator();
while(atmp > 0)
{
atmp--;
iter.next();
}
return iter.next();
}
}
總結(jié)
以上就是本文關(guān)于Java編程一個(gè)隨機(jī)數(shù)產(chǎn)生模塊代碼分享的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
Spring Boot2發(fā)布調(diào)用REST服務(wù)實(shí)現(xiàn)方法
這篇文章主要介紹了Spring Boot2發(fā)布調(diào)用REST服務(wù)實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
詳解java中的互斥鎖信號(hào)量和多線程等待機(jī)制
這篇文章主要介紹了Java編程中的互斥鎖,信號(hào)量和多線程等待機(jī)制實(shí)例詳解,簡(jiǎn)單介紹了互斥鎖和信號(hào)量的區(qū)別,需要的朋友可以了解下。2017-09-09
Java向Runnable線程傳遞參數(shù)方法實(shí)例解析
這篇文章主要介紹了Java向Runnable線程傳遞參數(shù)方法實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Java的Struts框架中的if/else標(biāo)簽使用詳解
這篇文章主要介紹了Java的Struts框架中的if/else標(biāo)簽使用詳解,Struts是Java的SSH三大web開(kāi)發(fā)框架之一,需要的朋友可以參考下2015-12-12
spring.mvc.servlet.load-on-startup屬性方法源碼解讀
這篇文章主要介紹了spring.mvc.servlet.load-on-startup的屬性方法源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Java實(shí)現(xiàn)簡(jiǎn)單的酒店管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)酒店管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07
關(guān)于idea中出現(xiàn)nbsp和zwsp的完美解決辦法
本文給大家介紹關(guān)于idea中出現(xiàn)nbsp和zwsp的解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2022-06-06

