Java編程一個隨機數(shù)產生模塊代碼分享
java隨機數(shù)的產生比較簡單,可以通過
Random rand = new Random(47); System.out.println(rand.nextInt());
產生,也可以通過以下產生:
double d = Math.random();
當然代碼中前者由于使用了固定的種子47,所以每次的值都是一樣的,也可以使用
Random rand = new Random(); System.out.println(rand.nextInt());
而對于代碼2則產生的是double的隨機數(shù)。
下面說下關于3的方式,目前有個需求就是需要產生4為隨機數(shù),用于短信注冊碼的生成,那么就需要使用到隨機數(shù),于是使用代碼3來實現(xiàn)。若之間使用該代碼那么結果并不能滿足條件,那么通過以下方式來實現(xiàn):
//方式一
Random rand = new Random();
for (int i = 0; i < 4; i++){
System.out.print(Math.abs(rand.nextint() % 10));
}
//以上通過rand.next產生隨機數(shù),因可能存在負數(shù),用Math.abs取絕對值,然后取模10,產生的結果在10以內
//方式二
Random rand = new Random();
for (int i = 0; i < 4; i++){
System.out.print(rand2.nextint(10));
}
//以上使用api直接產生10以內的隨機數(shù)
自己最近寫的一個JAVA隨機數(shù)模塊,封裝了各種與隨機相關的實用方法,特拿來分享。
這里面沒什么高科技的東西,函數(shù)命名也能看出來用途,所以就簡單的注釋一下好了,有什么問題可以留言。
源代碼(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();
//獲得一個給定范圍的隨機整數(shù)
public static int getRandomNum(int smallistNum,int BiggestNum)
{
return (Math.abs(random.nextint())%(BiggestNum-smallistNum+1))+smallistNum;
}
//獲得一個隨機的布爾值
public static Boolean getRandomBoolean()
{
return (getRandomNum(0,1) == 1);
}
//獲得一個隨機在0~1的浮點數(shù)
public static float getRandomFloatIn_1()
{
return (float)getRandomNum(0,1000)/1000;
}
//獲得一個隨機的顏色
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);
}
//以一定概率返回一個布爾值
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ù)組中的一個隨機元素
public static <T> T getElement(T[] t)
{
int index = getRandomNum(0,t.length - 1);
return t[index];
}
//返回給定Collection中的一個隨機元素
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();
}
}
總結
以上就是本文關于Java編程一個隨機數(shù)產生模塊代碼分享的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
您可能感興趣的文章


閱讀排行
本欄相關
- 01-10Java咖啡館(1)——嘆咖啡
- 01-10JVM的垃圾回收機制詳解和調優(yōu)
- 01-10Java Socket編程(三) 服務器Sockets
- 01-10Java進階:Struts多模塊的技巧
- 01-10J2SE 1.5版本的新特性一覽
- 01-10Java Socket編程(一) Socket傳輸模式
- 01-10Java運行時多態(tài)性的實現(xiàn)
- 01-10Java Socket編程(二) Java面向連接的類
- 01-10Java Socket編程(四) 重復和并發(fā)服務
- 01-10Java經(jīng)驗點滴:處理沒有被捕獲的異常
隨機閱讀
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10delphi制作wav文件的方法
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10C#中split用法實例總結
- 04-02jquery與jsp,用jquery
- 08-05織夢dedecms什么時候用欄目交叉功能?


