原文:如何高效產生多個不重復的隨機數

編程珠璣 有這樣一個練習題: 如果認真考慮了習題 ,你將會面對生成小於n且沒有重復的k個整數的問題。最簡單的方法就是使用前k個正整數。這個極端的數據集合將不會明顯地改變位圖方法的運行時間,但是可能會歪曲系統排序的運行時間。如何生成位於 至之間的k個不同的隨機順序的隨機整數 盡量使你的程序簡短且高效。 這個題目,很多網友給出的解答是這樣的: 每產生一個,都跟前面的隨機數比較如果重復,就重新產生。但 ...

2019-02-12 03:23 0 1550 推薦指數:

查看詳情

如何高效產生多個不重復隨機數?

如何高效產生多個不重復隨機數 類型一: 完全范圍內的隨機數 舉例: 在整數1-100以內, 產生100個不同的隨機整數 思想: 將所有數字打亂, 按順序選取各個數 上面這段代碼只需要遍歷一次就可以產生這100個不重復隨機數. 類型 ...

Tue Oct 04 20:06:00 CST 2016 0 17418
關於產生不重復隨機數的算法 C#

我們不得不承認這樣一個事實:那就是盡管在高級程序語言設計中包含了類似於Random產生隨機數之類的方法,但是它產生隨機數並不能滿足我們日常所有需要,因為它可能重復——設想一下,電子化抽取試題的原理就是根據預定產生的題目數量產生果敢若干個對應的隨機數,然后將匹配的試題抽取、排序並打印在試卷 ...

Thu Nov 20 01:51:00 CST 2014 0 4146
JavaScript實戰:產生n個不重復隨機數

實戰: (1)案例描述 用JavaScript產生n個[min,max]區間內的不重復隨機數。 (2)實現思路 1.運用Math對象的random()方法生成一個[min,max]區間內的隨機數; 2.生成n個[min,max]區間內的不重復隨機數,生成第i個[min,max]區間 ...

Sun Apr 12 04:34:00 CST 2020 0 1073
Java集合案例(產生不重復隨機數)

獲取10個1-20之間的隨機數,要求不能重復 用數組實現,但是數組的長度是固定的,長度不好確定。所以我們使用集合實現。 分析;A:創建產生隨機數的對象B:創建一個存儲隨機數的集合C:定義一個統計變量。從0開始。D:判斷統計遍歷是否小於10是:先產生一個隨機數,判斷該隨機數在集合中是否存在 ...

Mon Feb 17 04:22:00 CST 2020 0 185
如何產生1-100之間的100個不重復隨機數

如何產生1-100之間的100個不重復隨機數 如果這是你是第一次看到這個題目,也許你的想法有很多。 1:首先從原始數組中隨機選擇一個數字,然后將該數字從數組中剔除,再隨記選,再剔除,重復99次,就解決了。 我們知道從數組中剔除一個元素的復雜度為O(N ...

Sun Aug 31 05:55:00 CST 2014 0 3551
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM