Java中的隨機數(shù)Random
更新時間:2022年03月17日 11:17:20 作者:言葉.
這篇文章主要介紹了Java中的隨機數(shù)Random,關于隨機數(shù)的介紹不設置隨機數(shù)種子,你每次隨機抽樣得到的數(shù)據都是不一樣的。設置了隨機數(shù)種子,能夠確保每次抽樣的結果一樣,下面來了解具體的詳細內容介紹吧
一個用于生成隨機數(shù)的類
具體用法:
? //創(chuàng)建隨機數(shù)對象 ? ? ? ? Random random = new Random(); ? ? ? ? //隨機產生一個int類型取值范圍內的數(shù)字。 ? ? ? ? int num1 = random.nextInt(); ? ? ? ? System.out.println(num1); ? ? ? ? //產生一個[0-100]之間的隨機數(shù) ? ? ? ? int num2 = random.nextInt(101); ? ? ? ? System.out.println(num2);//不包括101
寫一個不含重復數(shù)字的隨機數(shù)組
第一種:
int[] num = new int[5];
? ? ? ? boolean flag = true;
? ? ? ? Random random = new Random();
? ? ? ? for (int i = 0; i < num.length; i++) {
? ? ? ? ? ? int a = random.nextInt(5);
? ? ? ? ? ? for (int j = i - 1; j >= 0; j--) {//當i == 0 的時候這一步不執(zhí)行
? ? ? ? ? ? ? ? if (a == num[j]) {
? ? ? ? ? ? ? ? ? ? flag = false;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? if (flag) {
? ? ? ? ? ? ? ? num[i] = a;
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? i--;
? ? ? ? ? ? ? ? flag = true;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? ? ? ? ? System.out.println(Arrays.toString(num));第一種方法的改進:
public static void main(String[] args) {
? ? ? ? int[] num = new int[5];
? ? ? ? Random random = new Random();
? ? ? ? int index = 0;
? ? ? ? while (index < num.length) {
? ? ? ? ? ? int a = random.nextInt(5);
? ? ? ? ? ? if (contains(num, index, a)) { //把判斷有沒有變成了一個方法
? ? ? ? ? ? ? ? num[index++] = a;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? System.out.println(Arrays.toString(num));
? ? }
? ? public static boolean contains(int[] a, int index, int temp) {
? ? ? ? for (int i = index - 1; i >= 0; i--) {
? ? ? ? ? ? if (temp == a[i]) {
? ? ? ? ? ? ? ? return false;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return true;
? ? }第二種:
不推薦這種方法,雖然使用了Arrays自帶的方法 ,但是這個方法的除最后一個元素以外的元素都是排好序的
這種隨機有點不嚴謹
public static void main(String[] args) {
? ? ? ? int[] a = new int[5];
? ? ? ? Random random = new Random();
? ? ? ? int index = -1;
? ? ? ? while(index < a.length -1){
? ? ? ? ? ? int b = random.nextInt(5);
? ? ? ? ? ? if(contains(a,b,index)){
? ? ? ? ? ? ? ? a[++index] = b;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? System.out.println(Arrays.toString(a));
? ? }
? ? public static boolean contains(int[] a , int b , int index){
? ? ? ? if (index < 0){
? ? ? ? ? ? return true;
? ? ? ? }
? ? ? ? ? ? Arrays.sort(a,0,index + 1);//下標為[0,index+1)的數(shù)組排序 不包含index+1
? ? ? ? return Arrays.binarySearch(a,0,index + 1,b) < 0;//二分法查找下標為[0,index+1)范圍內是否包含b ?
? ? }
到此這篇關于Java中的隨機數(shù)Random的文章就介紹到這了,更多相關隨機數(shù)Random內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot + Mybatis Plus 整合 Redis的
文章詳細介紹了Redis在用戶管理系統(tǒng)中的應用,包括用戶信息緩存、Token存儲、接口限流、重復提交攔截和熱點數(shù)據預加載等場景,并提供了具體的實現(xiàn)方案和步驟,感興趣的朋友一起看看吧2025-03-03
如何使用BigDecimal實現(xiàn)Java開發(fā)商業(yè)計算
這篇文章主要介紹了如何使用BigDecimal實現(xiàn)Java開發(fā)商業(yè)計算,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09
SpringMVC整合,出現(xiàn)注解沒有起作用的情況處理
這篇文章主要介紹了SpringMVC整合,出現(xiàn)注解沒有起作用的情況及處理,具有很好的參考價值,希望對大家有所幫助。2023-05-05
springboot中RabbitMQ死信隊列的實現(xiàn)示例
死信隊列是一種特殊的消息隊列,用來存儲無法被正常消費的消息,常被用來實現(xiàn)延遲處理,異常消息處理等,本文主要介紹了springboot中RabbitMQ死信隊列的實現(xiàn)示例,感興趣的可以了解一下2024-01-01

