91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java如何實現隨機生成100個在1-150之間的數字并不出現重復

發布時間:2020-11-10 16:34:25 來源:億速云 閱讀:737 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關Java如何實現隨機生成100個在1-150之間的數字并不出現重復,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

核心代碼

import java.util.Arrays;

/**
 * 用Java產生100個1-150的數字
 */
public class RandomTest {

	public static void main(String[] args) {
		int[] resultArr = produceNum(1, 150, 100);
		for (Integer num : resultArr) {
			System.out.println(num);
		}
		
		System.out.println("+++++++++++++++++===================+++++++++++++");
		
		// 對結果數組排序后再輸出
		Arrays.sort(resultArr);
		for (Integer num : resultArr) {
			System.out.println(num);
		}
	}

	/**
	 * 產生隨機數字
	 * @param minNum 最小數字
	 * @param maxNum 最大數字
	 * @param numCount 產生的數字個數
	 * @return 結果數組
	 */
	public static int[] produceNum(int minNum, int maxNum, int numCount) {
		
		// 入參校驗
		// 如果隨機數的個數大于產生隨機數的范圍;或最大數小于最小數
		// 直接返回null,說明入參不符合要求
		if (numCount > (maxNum - minNum + 1) || maxNum < minNum) {
			return null;
		}
		
		// 存放結果的數組
		int[] resultArr = new int[numCount];
		
		// count 記錄已產生的隨機數的個數
		int count = 0;
		
		while(count < numCount) {
			
			// 產生隨機數
			int num = (int) (Math.random() * (maxNum - minNum)) + minNum;
			
			// flag 定義本次產生的隨機數是否已在數組中
			boolean flag = true;
			
			// 遍歷數組中已產生的隨機數
			for (int i=0; i<count; i++) {
				
				// 同本次產生的隨機數最比較
				if (num == resultArr[i]) {
					
					// 如果已存在相同的值,則跳出for循環,繼續外層的while循環,產生下一個隨機數
					flag = false;
					break;
				}
			}
			
			// 如果本次產生的隨機數在數組中不存在,則將該隨機數存放在數組中
			if (flag) {
				resultArr[count] = num;
				
				// 數組中已產生的隨機數個數加1
				count++;
			}
		}
		
		return resultArr;
	}
}

代碼解讀

1 int num = (int) (Math.random() * (maxNum - minNum)) + minNum;
Math.random() 產生的是0~1 之間的double類型的隨機數
Math.random() * 10 便會得到 0 ~ 10 之間的隨機數,轉int后便是0 ~ 9;如果給 Math.random() * 10 + 1,便是1 ~ 11 之間的隨機數,轉int便是1 ~ 10。
這里的1 相當于程序中的最小值,11則為最大值。
這樣便得到了產生隨機數的 (int) (Math.random() * (maxNum - minNum)) + minNum

2 for (int i=0; i<count; i++) {
由于每次產生的num都是隨機的,所以無法保證重復的問題,所以只有通過去同已經產生的存在數組中的數字去比較,相同,則重新產生,不同,則添加進數組。

以上就是Java如何實現隨機生成100個在1-150之間的數字并不出現重復,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鸡东县| 许昌市| 永福县| 祁东县| 张家港市| 泗阳县| 象山县| 峨边| 井研县| 合水县| 新丰县| 北安市| 白水县| 梓潼县| 遂川县| 延川县| 怀集县| 广平县| 正安县| 泊头市| 北海市| 江安县| 商南县| 蓝山县| 深泽县| 淄博市| 襄樊市| 三穗县| 台北市| 房产| 怀仁县| 沁水县| 湾仔区| 华坪县| 伊宁县| 秦安县| 香格里拉县| 新竹县| 柳州市| 土默特左旗| 根河市|