java 计算随机数_JAVA获取随机数
在Java中我們能夠使用java.util.Random類來產(chǎn)生一個(gè)隨機(jī)數(shù)發(fā)生器。它有兩種形式的構(gòu)造函數(shù),各自是Random()和Random(long seed)。Random()使用當(dāng)前時(shí)間即System.currentTimeMillis()作為發(fā)生器的種子,Random(long seed)使用指定的seed作為發(fā)生器的種子。
隨機(jī)數(shù)發(fā)生器(Random)對(duì)象產(chǎn)生以后,通過調(diào)用不同的method:nextInt()、nextLong()、nextFloat()、nextDouble()等獲得不同類型隨機(jī)數(shù)。
1>生成隨機(jī)數(shù)
Random random = new Random();
Random random = new Random(100);//指定種子數(shù)100
random調(diào)用不同的方法,獲得隨機(jī)數(shù)。
假設(shè)2個(gè)Random對(duì)象使用同樣的種子(比方都是100),而且以同樣的順序調(diào)用同樣的函數(shù),那它們返回值全然同樣。如以下代碼中兩個(gè)Random對(duì)象的輸出全然同樣
import java.util.*;
class TestRandom {
public static void main(String[] args) {
Random random1 = new Random(100);
System.out.println(random1.nextInt());
System.out.println(random1.nextFloat());
System.out.println(random1.nextBoolean());
Random random2 = new Random(100);
System.out.println(random2.nextInt());
System.out.println(random2.nextFloat());
System.out.println(random2.nextBoolean());
}
}
2>指定范圍內(nèi)的隨機(jī)數(shù)
隨機(jī)數(shù)控制在某個(gè)范圍內(nèi),使用模數(shù)運(yùn)算符%
import java.util.*;
class TestRandom {
public static void main(String[] args) {
Random random = new Random();
for(int i = 0; i < 10;i++) {
System.out.println(Math.abs(random.nextInt())%10);
}
}
}
獲得的隨機(jī)數(shù)有正有負(fù)的,用Math.abs使獲取數(shù)據(jù)范圍為非負(fù)數(shù)
3>獲取指定范圍內(nèi)的不反復(fù)隨機(jī)數(shù)
import java.util.*;
class TestRandom {
public static void main(String[] args) {
int[] intRet = new int[6];
int intRd = 0; //存放隨機(jī)數(shù)
int count = 0; //記錄生成的隨機(jī)數(shù)個(gè)數(shù)
int flag = 0; //是否已經(jīng)生成過標(biāo)志
while(count<6){
Random rdm = new Random(System.currentTimeMillis());
intRd = Math.abs(rdm.nextInt())%32+1;
for(int i=0;i
if(intRet[i]==intRd){
flag = 1;
break;
}else{
flag = 0;
}
}
if(flag==0){
intRet[count] = intRd;
count++;
}
}
for(int t=0;t<6;t++){
System.out.println(t+"->"+intRet[t]);
}
}
}
總結(jié)
以上是生活随笔為你收集整理的java 计算随机数_JAVA获取随机数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: boot定时任务开启和关闭 spring
- 下一篇: python调用js获取异步返回的数据_