由于你沒有指定這10個整數(shù)的生成范圍,所以我這里假定是0~99之間的整數(shù),這樣用戶輸入時有10%的幾率命中。
成都創(chuàng)新互聯(lián)公司總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、網(wǎng)絡(luò)營銷策劃、網(wǎng)頁設(shè)計、網(wǎng)站維護(hù)、公眾號搭建、微信平臺小程序開發(fā)、軟件開發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動行銷領(lǐng)域創(chuàng)造價值而不懈努力!
整體代碼為:
public class Main {
public static void main(String[] args) {
//聲明長度為10的隨機(jī)數(shù)數(shù)組
int[] randoms = new int[10];
Random random = new Random();
for (int i = 0; i 10; i++) {
//獲取0~99之間的一個隨機(jī)整數(shù),可通過調(diào)整nextInt的參數(shù)來修改隨機(jī)數(shù)范圍
int num = random.nextInt(100);
//如果新生成的數(shù)字已經(jīng)存在于隨機(jī)數(shù)數(shù)組中,則重新生成
if (checkDistinct(randoms, num)) {
i--;
continue;
}
randoms[i] = num;
}
//增序排序,好看
Arrays.sort(randoms);
System.out.println("請輸入一個整數(shù):");
Scanner scanner = new Scanner(System.in);
//嚴(yán)謹(jǐn)一點(diǎn)這里其實可以對輸入的in進(jìn)行校驗,檢驗其是不是整數(shù),校驗方法很多搜一下就有我這就不校驗了
int in = scanner.nextInt();
System.out.println("生成的隨機(jī)數(shù)數(shù)組為:");
System.out.println(Arrays.toString(randoms));
if (checkDistinct(randoms, in)) {
System.out.println("輸入的數(shù)字[" + in + "]在其中");
} else {
System.out.println("輸入的數(shù)字[" + in + "]不在其中");
}
}
//檢查新生成的數(shù)字是否存在于隨機(jī)數(shù)數(shù)組中,若存在,返回true
private static boolean checkDistinct(int[] randoms, int num) {
for (int i = 0; i randoms.length; i++) {
if (randoms[i] == num) {
return true;
}
}
return false;
}
}
運(yùn)行結(jié)果:
輸入的數(shù)字存在時:
輸入的數(shù)字不存在時:
可以先通過random方法生成一個隨機(jī)數(shù),然后將結(jié)果乘以100,然后再利用int方法進(jìn)行轉(zhuǎn)換,就可以得到一個0到99的隨機(jī)整數(shù)。
java代碼方法一如下:
int random=(int)(Math.random()*10+1)
java代碼方法二如下:
package bdqn_Empy;
import java.util.Random;
public class Text {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=0;
Random b=new Random();
a=b.nextInt(101);
System.out.println(a);
}
}
擴(kuò)展資料:
可以先通過 random方法生成一個隨機(jī)數(shù),然后將結(jié)果乘以10。此時產(chǎn)生的隨機(jī)數(shù)字即為大于等于0小于10的數(shù)字。
然后再利用nt方法進(jìn)行轉(zhuǎn)換它會去掉小數(shù)掉后面的數(shù)字即只獲取整數(shù)部分,不是四舍五入)。最后即可獲取一個0到9的整數(shù)型隨機(jī)數(shù)字。其實現(xiàn)方法很簡單,就是對原有的 grandom方法按照如下的格式進(jìn)行變型:(int( Math. Random0*10)即可。
其實我們還可以對這個方法進(jìn)行擴(kuò)展,讓其產(chǎn)生任意范圍內(nèi)的隨機(jī)數(shù)。至需要將這個10換成n即可,如改為( int(Math. Random0n)。此時應(yīng)用程序就會產(chǎn)生一個大于等于0小與n之間的隨機(jī)數(shù)。
如將n設(shè)置為5,那么其就會產(chǎn)生一個0到5之間的整數(shù)型的隨機(jī)數(shù)。如果將這個寫成一個帶參數(shù)的方法,那么只要用戶輸入需要生成隨機(jī)數(shù)的最大值,就可以讓這個方法來生成制定范圍的隨機(jī)數(shù)。
(int)(Math.random()*8)+1
或者
Random r =new Random(100);
System.out.println(r.nextInt(8)+1);
Java產(chǎn)生隨機(jī)數(shù)的兩種方式
1、通過Math.random()方法返回一個0到1之間的double值。?
2、通過Random類來產(chǎn)生一個隨機(jī)數(shù),這個是專業(yè)的Random工具類,功能強(qiáng)大。
Math.random()方法
Math.random()方法是 Java 的一個靜態(tài)方法,返回一個0到1之間,前閉后開區(qū)間的double值。
(int)(Math.random()*10) 返回0到9的隨機(jī)整數(shù)。?
(int)(Math.random()*n) 返回0到n的隨機(jī)整數(shù)。?
(int)(Math.random()*100)+1 返回1到100之間的隨機(jī)整數(shù),前面返回0到99之間的隨機(jī)數(shù),加1就成了1到100之間的隨機(jī)數(shù)。
Random類
Random 類是 Java 的 util 包中的一個類。
一、Random類使用說明
Random類使用的根本策略是分帶種子和不帶種子的Random的實例。?
通俗說,兩者的區(qū)別是:帶種子的,每次運(yùn)行生成的結(jié)果都是一樣的。?
不帶種子的,每次運(yùn)行生成的都是隨機(jī)的,沒有規(guī)律可言。
創(chuàng)建不帶種子的Random對象?
Random random = new Random();?
使用一個和當(dāng)前系統(tǒng)時間對應(yīng)的相對時間有關(guān)的數(shù)字作為種子數(shù)。
創(chuàng)建帶種子的Random對象有兩種方法:?
1) Random random = new Random(10);?
2) Random random = new Random();random.setSeed(10);?
種子的作用是什么?
種子就是產(chǎn)生隨機(jī)數(shù)的第一次使用值,機(jī)制是通過一個函數(shù),將這個種子的值轉(zhuǎn)化為隨機(jī)數(shù)空間中的某一個點(diǎn)上,并且產(chǎn)生的隨機(jī)數(shù)均勻的散布在空間中。以后產(chǎn)生的隨機(jī)數(shù)都與前一個隨機(jī)數(shù)有關(guān)。?
舉例:
Random r =new Random(100);
System.out.println(r.nextInt(20));?
100是種子,r.nextInt(20)中的20是隨機(jī)數(shù)的上限,產(chǎn)生的隨機(jī)數(shù)為0-20的整數(shù),不包括20,種子數(shù)只是隨機(jī)算法的起源數(shù)字,和生成的隨機(jī)數(shù)字的區(qū)間沒有任何關(guān)系。?
初始化時100并沒有起直接作用(注意:不是沒有起作用)。