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

2021-10-07 08:04:29 字數 638 閱讀 2011

最近在寫單機版客戶端伺服器列表展示時遇到隨機選取伺服器列表的問題,正常情況下伺服器列表是伺服器返回給客戶端(比如伺服器定義:proto_gc_server_list_noti(message),當客戶端登入時,收到該協議後進行伺服器列表展示)

本文沒有寫客戶端與伺服器互動,只單機實現客戶端展示伺服器列表,客戶端定義乙個字串或者寫到.txt/.csv形成乙個配置檔案(好比我們在玩手遊建立人物的時候,有的遊戲會隨機給玩家一些遊戲暱稱)

static void main(string args)

random rand = new random();

int num = new int[10];//陣列的長度

int j = 0;

for (int i = 0; i < num.length; i++)

{num[i] = rand.next(1, strs.length);

while (j每次執行效果都是得到互不相同的10個字元暱稱:

雖然很簡單,也是小白自己記錄一下方便日後檢視,如果有寫的不對的地方還請大神們指點

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

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

生成互不相同隨機數的一種演算法

c 中常用rand 和srand 函式相結合來生成每次執行都不相同的一組隨機數,常見的寫法如下 cpp view plain copy include include include include using namespace std int tmain int argc,tchar argv ...

生成k個小於n的互不相同的隨機數

核心 讓每個數被選中的概率都為k n.隨機取出乙個數,剩下的裡面再取出乙個數,重複k次。方法一 利用洗牌的原理,將n個數 0至n 1 按次序排好,讓最後乙個數和乙個隨機 0 n 1 挑選出的位子進行互換,再讓倒數第2個數和 0 n 2 位置中挑選出來的位置進行互換,依次執行k次,陣列中的最後k個數就...