導航:首頁 > 源碼編譯 > 隨機無重復數演算法

隨機無重復數演算法

發布時間:2023-02-01 01:35:51

『壹』 求一個特定區域內產生隨機數不重復的演算法

解答如下:

像這種題目就是求全排列的類型。
現在你題目中有y個數字,
第一次抽取時,共有y個數字可供選擇,因此有y種可能性。

第二次抽取時,因不能重復,所以共有y-1個數字可供選擇,因此有y-1種可能性。

第三次抽取時,也因不能重復,所以只有y-2個數字可供選擇,因此有y-2種可能性。

根據上面可以類推出第四次,第五次……第y次
因此具體的答案就為:y*(y-1)*(y-2)*(y-3)……*{y-(y-1)} = y!

『貳』 random 怎麼實現隨機數不重復方法 java

java中實現隨機數不重復主要思想是使用hashset來保存每個生成的數據,因為set集合本身內部機制實現了不保存相同的數據,代碼如下:

/**
*隨機指定范圍內N個不重復的數
*利用HashSet的特徵,只能存放不同的值
*@parammin指定范圍最小值
*@parammax指定范圍最大值
*@paramn隨機數個數
*@paramHashSet<Integer>set隨機數結果集
*/
publicstaticvoidrandomSet(intmin,intmax,intn,HashSet<Integer>set){
if(n>(max-min+1)||max<min){
return;
}
for(inti=0;i<n;i++){
//調用Math.random()方法
intnum=(int)(Math.random()*(max-min))+min;
set.add(num);//將不同的數存入HashSet中
}
intsetSize=set.size();
//如果存入的數小於指定生成的個數,則調用遞歸再生成剩餘個數的隨機數,如此循環,直到達到指定大小
if(setSize<n){
randomSet(min,max,n-setSize,set);//遞歸
}
}

『叄』 如何生成一定范圍內不重復的隨機數

我不知道你什麼語言我提供一個思路吧!
用戶名+時間(毫微秒)+永無重復的隨機數組
此套演算法適合文件上傳時用於解決文件名重復問題
理解:
用戶名:確保用戶名不重復,以此限制重復的可能性僅僅出現在某個具體用戶的操作中!
毫微秒(Ticks):此數重復的可能性極低。
隨機數組:方法是,確認要上傳幾個文件並記錄數量,然後循環出一個隨機數組,判斷:若當前隨機出的數字包含在數組中則循環次數+1(也就是當前循環變數-1)回跳一次循環,以此循環出與文件數相等的隨機數組;此處再一次保證具體某一個用戶在單次多文件上傳時不會出現文件同名情況。
若功能符合上述條件,則可以做到永無重復的文件名!
隨機數組代碼:
int[] intNum = new int[FileCollect.Count];
for (int i = 0; i < FileCollect.Count;i++ )
{
Random dom = new Random();
int domNum = dom.Next(0, 20000);
if (intNum.Contains(domNum)&&i!=0)
{
i = i - 1;
}
else
{
intNum[i] = domNum;
}
}

『肆』 該如何讓隨機數不重復!!!我想不到了

Random需要一個種子, 如果沒給用預設的, 因為每次都一樣, 所以一定會按照相同順序, 每次開啟都一致.
常見做法就是將時間當作種子, 每次運行的時間都不會一樣, 自然就不會重復了.

閱讀全文

與隨機無重復數演算法相關的資料

熱點內容
九叔世界酒泉鎮安妮 瀏覽:302
榮耀新手機開機怎麼那麼多app 瀏覽:535
3dmax命令面板上插值沒有了 瀏覽:788
十大必看火影小說排行榜 瀏覽:484
用雲伺服器做視頻播放直播 瀏覽:344
iphone文件里突然多了QQ的文件夾 瀏覽:903
茹茹母乳影視 瀏覽:520
mp4電影下載 免費 瀏覽:591
下棋小男孩電影 瀏覽:673
主角無意間修煉出了念力 瀏覽:59
韓國自由戀愛時代兩個女主 瀏覽:671
阿里雲伺服器遠程連接後如何登陸密碼 瀏覽:543
局城網中網路列印伺服器如何設置 瀏覽:445
葉子媚演過尺較大的電影 瀏覽:572
pdf裁邊 瀏覽:193
林正英和大傻演的電影叫什麼 瀏覽:797
搶先電影社區 瀏覽:754
kpzz5. top/ index. php 瀏覽:208
繁殖食人族的電影 瀏覽:488
益智類電影小學 瀏覽:828