import java.util.Random;
我們提供的服務(wù)有:網(wǎng)站建設(shè)、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、武勝ssl等。為超過千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的武勝網(wǎng)站制作公司
public class RandomNumber{
public static void main(String[] args) {
// 使用java.lang.Math的random方法生成隨機數(shù)
System.out.println("Math.random(): " + Math.random());
// 使用不帶參數(shù)的構(gòu)造方法構(gòu)造java.util.Random對象
System.out.println("使用不帶參數(shù)的構(gòu)造方法構(gòu)造的Random對象:");
Random rd1 = new Random();
// 產(chǎn)生各種類型的隨機數(shù)
// 按均勻分布產(chǎn)生整數(shù)
System.out.println("int: " + rd1.nextInt());
// 按均勻分布產(chǎn)生長整數(shù)
System.out.println("long: " + rd1.nextLong());
// 按均勻分布產(chǎn)生大于等于0,小于1的float數(shù)[0, 1)
System.out.println("float: " + rd1.nextFloat());
// 按均勻分布產(chǎn)生[0, 1)范圍的double數(shù)
System.out.println("double: " + rd1.nextDouble());
// 按正態(tài)分布產(chǎn)生隨機數(shù)
System.out.println("Gaussian: " + rd1.nextGaussian());
// 生成一系列隨機數(shù)
System.out.print("隨機整數(shù)序列:");
for (int i = 0; i 5; i++) {
System.out.print(rd1.nextInt() + " ");
}
System.out.println();
// 指定隨機數(shù)產(chǎn)生的范圍
System.out.print("[0,10)范圍內(nèi)隨機整數(shù)序列: ");
for (int i = 0; i 10; i++) {
// Random的nextInt(int n)方法返回一個[0, n)范圍內(nèi)的隨機數(shù)
System.out.print(rd1.nextInt(10) + " ");
}
System.out.println();
System.out.print("[5,23)范圍內(nèi)隨機整數(shù)序列: ");
for (int i = 0; i 10; i++) {
// 因為nextInt(int n)方法的范圍是從0開始的,
// 所以需要把區(qū)間[5,28)轉(zhuǎn)換成5 + [0, 23)。
System.out.print(5 + rd1.nextInt(23) + " ");
}
System.out.println();
System.out.print("利用nextFloat()生成[0,99)范圍內(nèi)的隨機整數(shù)序列: ");
for (int i = 0; i 10; i++) {
System.out.print((int) (rd1.nextFloat() * 100) + " ");
}
System.out.println();
System.out.println();
// 使用帶參數(shù)的構(gòu)造方法構(gòu)造Random對象
// 構(gòu)造函數(shù)的參數(shù)是long類型,是生成隨機數(shù)的種子。
System.out.println("使用帶參數(shù)的構(gòu)造方法構(gòu)造的Random對象:");
Random ran2 = new Random(10);
// 對于種子相同的Random對象,生成的隨機數(shù)序列是一樣的。
System.out.println("使用種子為10的Random對象生成[0,10)內(nèi)隨機整數(shù)序列: ");
for (int i = 0; i 10; i++) {
System.out.print(ran2.nextInt(10) + " ");
}
System.out.println();
Random ran3 = new Random(10);
System.out.println("使用另一個種子為10的Random對象生成[0,10)內(nèi)隨機整數(shù)序列: ");
for (int i = 0; i 10; i++) {
System.out.print(ran3.nextInt(10) + " ");
}
System.out.println();
// ran2和ran3生成的隨機數(shù)序列是一樣的,如果使用兩個沒帶參數(shù)構(gòu)造函數(shù)生成的Random對象,
// 則不會出現(xiàn)這種情況,這是因為在沒帶參數(shù)構(gòu)造函數(shù)生成的Random對象的種子缺省是當(dāng)前系統(tǒng)時間的毫秒數(shù)。
// 另外,直接使用Random無法避免生成重復(fù)的數(shù)字,如果需要生成不重復(fù)的隨機數(shù)序列,需要借助數(shù)組和集合類
}
}運行結(jié)果:
C:\java RandomNumber
Math.random(): 0.525171492959965
使用不帶參數(shù)的構(gòu)造方法構(gòu)造的Random對象:
int: 636539740
long: -752663949229005813
float: 0.87349784
double: 0.4065973309853902
Gaussian: 0.4505871918488808
隨機整數(shù)序列:1936784917 1339857386 -1185229615 1883411721 1409219372
[0,10)范圍內(nèi)隨機整數(shù)序列: 1 1 5 5 9 0 1 0 2 4
[5,23)范圍內(nèi)隨機整數(shù)序列: 9 13 26 18 11 27 26 12 21 8
利用nextFloat()生成[0,99)范圍內(nèi)的隨機整數(shù)序列: 1 47 72 59 49 86 80 88 55 82
使用帶參數(shù)的構(gòu)造方法構(gòu)造的Random對象:
使用種子為10的Random對象生成[0,10)內(nèi)隨機整數(shù)序列:
3 0 3 0 6 6 7 8 1 4
使用另一個種子為10的Random對象生成[0,10)內(nèi)隨機整數(shù)序列:
3 0 3 0 6 6 7 8 1 4
方法一代碼:
import java.util.Random;
public class Test {
public static void main(String[] args){
Random rand = new Random();
for(int i=0; i10; i++) {
System.out.println(rand.nextInt(100) + 1);
}
}
}
方法二代碼:
package edu.sjtu.erplab.io;
import java.util.Random;
public class RandomTest {
public static void main(String[] args) {
int max=20;
int min=10;
Random random = new Random();
int s = random.nextInt(max)%(max-min+1) + min;
System.out.println(s);
}
}
擴展資料:
在windows下編譯java文件、執(zhí)行:
1、先創(chuàng)建一個txt,更改為test.java。
2、編寫代碼,為輸出為holloword。
3、找到cmd,并進行打開cmd。
4、編譯java文件,輸入命令為javac test.java。
5、如果沒有報錯,查看當(dāng)前目錄下是否有class文件產(chǎn)生。
6、執(zhí)行class文件,在命令輸入java test,輸出為holloword。
/**
?*?隨機指定范圍內(nèi)N個不重復(fù)的數(shù)
?*?最簡單最基本的方法
?*?@param?min?指定范圍最小值
?*?@param?max?指定范圍最大值
?*?@param?n?隨機數(shù)個數(shù)
?*/
public?static?int[]?randomCommon(int?min,?int?max,?int?n){
if?(n??(max?-?min?+?1)?||?max??min)?{
return?null;
}
int[]?result?=?new?int[n];
int?count?=?0;
while(count??n)?{
int?num?=?(int)?(Math.random()?*?(max?-?min))?+?min;
boolean?flag?=?true;
for?(int?j?=?0;?j??n;?j++)?{
if(num?==?result[j]){
flag?=?false;
break;
}
}
if(flag){
result[count]?=?num;
count++;
}
}
return?result;
}
可以先通過random方法生成一個隨機數(shù),然后將結(jié)果乘以100,然后再利用int方法進行轉(zhuǎn)換,就可以得到一個0到99的隨機整數(shù)。
可以借助Math類里的random方法或者借助Random類來實現(xiàn)
1、使用Math類的random方法實現(xiàn)產(chǎn)生1000-9999的隨機數(shù)代碼如下:
int a = (int)(Math.random()*(9999-1000+1))+1000;//產(chǎn)生1000-9999的隨機數(shù)
2、使用Random類實現(xiàn)代碼:
import java.util.Random;//導(dǎo)入Random包
public class Ranadd {
public static void main(String[] args) {
int x;//定義兩變量
Random ne=new Random();//實例化一個random的對象ne
x=ne.nextInt(9999-1000+1)+1000;//為變量賦隨機值1000-9999
System.out.println("產(chǎn)生的隨機數(shù)是:"+x);//輸出
}
}
一、利用random方法來生成隨機數(shù)。
在Java語言中生成隨機數(shù)相對來說比較簡單,因為有一個現(xiàn)成的方法可以使用。在Math類中,Java語言提供了一個叫做random的方法。通過這個方法可以讓系統(tǒng)產(chǎn)生隨機數(shù)。
二、通過Random類來生成隨機數(shù)。
在Java語言中,除了可以通過random 方法來產(chǎn)生隨機數(shù)之外,還可以通過一個random類來產(chǎn)生隨機數(shù)。程序開發(fā)人員可以通過實例化一個Random對象來創(chuàng)建一個隨機數(shù)的生成器。如 Random i=new Random()。通過這條語句就利用了Random類創(chuàng)建了一個隨機數(shù)的生成器。數(shù)
三、產(chǎn)生隨機的字符。
可以利用random方法來產(chǎn)生隨機字符。如可以利用代碼生成一個隨機的小寫字符:(char)(‘a(chǎn)’+Math.random()*(‘z’-‘a(chǎn)’+1))。其實這跟生成任意兩個數(shù)之間的隨機數(shù)類似。通過以上的代碼就可以生成一個范圍之內(nèi)的任意隨機字符。通過對這個代碼進行適當(dāng)?shù)男拚?,還可以生成任意兩個字符之間的隨機字符與任意大寫字符的隨機字符。其轉(zhuǎn)換的方式跟上面提到的任意范圍之內(nèi)的隨機數(shù)類似。
下面來了解下隨機數(shù)的運用:
在統(tǒng)計學(xué)的不同技術(shù)中需要使用隨機數(shù),比如在從統(tǒng)計總體中抽取有代表性的樣本的時候,或者在將實驗動物分配到不同的試驗組的過程中,或者在進行蒙特卡羅模擬法計算的時候等等。
真正的隨機數(shù)是使用物理現(xiàn)象產(chǎn)生的:比如擲錢幣、骰子、轉(zhuǎn)輪、使用電子元件的噪音、核裂變等等。這樣的隨機數(shù)發(fā)生器叫做物理性隨機數(shù)發(fā)生器,它們的缺點是技術(shù)要求比較高。
在實際應(yīng)用中往往使用偽隨機數(shù)就足夠了。這些數(shù)列是“似乎”隨機的數(shù),實際上它們是通過一個固定的、可以重復(fù)的計算方法產(chǎn)生的。計算機或計算器產(chǎn)生的隨機數(shù)有很長的周期性。它們不真正地隨機,因為它們實際上是可以計算出來的,但是它們具有類似于隨機數(shù)的統(tǒng)計特征。這樣的發(fā)生器叫做偽隨機數(shù)發(fā)生器。
在真正關(guān)鍵性的應(yīng)用中,比如在密碼學(xué)中,人們一般使用真正的隨機數(shù)。
C語言、C++、C#、Java、Matlab等程序語言和軟件中都有對應(yīng)的隨機數(shù)生成函數(shù),如rand等。
名稱欄目:java中產(chǎn)隨機數(shù)的代碼 產(chǎn)生隨機數(shù)java
標(biāo)題URL:http://aaarwkj.com/article12/docppdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站收錄、響應(yīng)式網(wǎng)站、網(wǎng)站導(dǎo)航、品牌網(wǎng)站設(shè)計、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)