高效的獲得一組不相等的隨機數

2021-05-23 21:10:27 字數 300 閱讀 1302

在程式設計的過程中經常會用到隨機數,生成單個隨機數可以用自帶的random就好,但是如果要生成一組不相等的隨機數就比較麻煩了。最笨的方法是每生成乙個隨機數即和以前生成的隨機數比較一番,這種方法效率比較的低。高階的一點可以利用set集合的唯一性來得到一組不相等的隨機數,但是這樣也還是不方便,因為其實還是要互相比較的。

要生成一組不相等的隨機數其實有個非常簡單的方法,其複雜度就是n(要生成的隨機數個數)。具體**如下:

其演算法的原理就是每次在i和n之間生成乙個隨機數,然後和a[i]調換,這樣可以確保生成的隨機數都放在0-i之間,並且是不相等的。演算法的複雜度是n

菜鳥學習演算法 隨機生成互不相等的數

最近在寫單機版客戶端伺服器列表展示時遇到隨機選取伺服器列表的問題,正常情況下伺服器列表是伺服器返回給客戶端 比如伺服器定義 proto gc server list noti message 當客戶端登入時,收到該協議後進行伺服器列表展示 本文沒有寫客戶端與伺服器互動,只單機實現客戶端展示伺服器列表...

C 庫研究筆記 生成一組隨機數

當試圖用 srand time 0 rand 生成一組隨機數時發現,生成的數字很多都是 一樣 的 經過測試 srand seed rand 生成隨機數,當seed一樣時,生成的隨機數相同。所以上述 一樣 的問題應該出在time 0 所以最後採用的方式是 sleep 高精度計時,srand getti...

Python 獲得某個範圍的隨機數

import random print random.randint 1,10 產生 1 到 10 的乙個整數型隨機數 print random.random 產生 0 到 1 之間的隨機浮點數 print random.uniform 1.1,5.4 產生 1.1 到 5.4 之間的隨機浮點數,區...