換個思路,將1~100放入集合,從中選取數字放入結果陣列中,然後將已選過的數字從集合中移除。這樣每一次隨機都能選到數字,而不會多次拋棄隨機出來的值。
int num = new int[100]; //定義陣列
for (int i = 1; i <= 100; i++)
arraylist al = new arraylist(num); //定義arraylist
random r = new random(); //定義隨機數
for (int i = 0; i < 100; i++)
{int pos = r.next(al.count); //隨機選擇下標
num[i] = convert.toint32(al[pos]); //arraylist中所選下標對應的數字存入陣列
al.removeat(pos); //移除arraylist中的該數字
for (int i = 0; i < 100; i++)
console.write(num[i].tostring() + " ");
不重複隨機數
1 不重複隨機數1 生產 lowerbound,upperbound 的隨機數,核心 int upperbound lowerbound 1 rnd lowerbound 示例 如下 sub rndnumnorepeat1 dimdic dim i set dic createobject scri...
不重複的隨機數
大哥,看了你這篇博文我怎樣才能產生10個且每個有8位不相同的隨機數字?剛才有位在skype問及如上問題。好的,insus.net也正想寫乙個儲存過程來應用上面這篇的sql語句,你可以參考如下的儲存過程,如果還問題請繼續討論。create procedure dbo usp randomnumber ...
C 生成不重複的隨機數
在做洗牌演算法的時候用到了隨機數,並且產生的隨機數中不能有重複的元素,因為是用c語言實現的,就把值賦給陣列,然後用隨機數產生陣列的下標,每產生乙個就刪除對應的元素,然後隨機數的生成範圍減一,但是這樣做每次都要迴圈去移動陣列元素,從時間複雜度上來說這樣並不好。於是,後來用c 重新實現 實現的思路並沒有...