用C 生成不重複的隨機數

2021-04-12 19:46:35 字數 459 閱讀 6811

最近在做乙個能自動生成作業的教學系統時,出現以下問題:需要隨機生成一組不重複的題目,用c#中的random類生成題號,可是他會出現重複,特別是在數量較小的題目中要生成不重複的的題目是很難的,參考了網上的一些方法,包括兩類,一類是通過隨機種子入手,使每一次的

隨機種子不同,來保證不重複,我沒有試過這種方法,不知道有沒有效,第二類是使用一些資料結構和演算法,我採用了第二種方法,思想是用

乙個陣列來儲存索引號,先隨機生成乙個陣列位置,然後把這個位置的索引號取出來,並把最後乙個索引號複製到當前的陣列位置,然後使隨機數的上限減一,具體如:先把這100個數放在乙個陣列內,每次隨機取乙個位置(第一次是1-100,第二次是1-99,...),將該位置的數用最後的數代替。**如下:

//從一百個數中取出不重複的50個數

public int getrandom()

return result;

}

用C 生成不重複的隨機數

我們在做能自動生成試卷的考試系統時,常常需要隨機生成一組不重複的題目,在.net framework中提供了乙個專門用來產生隨機數的類system.random。對於隨機數,大家都知道,計算機不 可能產生完全隨機的數字,所謂的隨機數發生器都是通過一定的演算法對事先選定的隨機種子做複雜的運算,用產生的...

用C 生成不重複的隨機數

我們在做能自動生成試卷的考試系統時,常常需要隨機生成一組不重複的題目,在.net framework中提供了乙個專門用來產生隨機數的類system.random。對於隨機數,大家都知道,計算機不可能產生完全隨機的數字,所謂的隨機數發生器都是通過一定的演算法對事先選定的隨機種子做複雜的運算,用產生的結...

用C 生成不重複的隨機數

我們在做能自動生成試卷的考試 系統 時,常常需要隨機生成一組不重複的題目,在.net framework中提供了乙個專門用來產生隨機數的類system.random。對於隨機數,大家都知道,計算機 不 可能產生完全隨機的數字,所謂的隨機數發生器都是通過一定的演算法對事先選定的隨機種子做複雜的運算,用...