生成不重複的隨機數演算法

2022-02-01 22:25:00 字數 853 閱讀 3803

有時我們需要從指定的數值範圍內隨機產生乙個數,利用這個偽隨機數去實現自己想要實現的東西。在園子裡看了不少好文章和**,發現zhoufoxcn實現這個演算法的思路很好,尤其是第三個方法,
效率較好,便把這一skill記載了下來,雖然我們可以用諸如random rand = new random(guid.newguid().gethashcode()); int value = rand.next(intmin, intmax)**實現,但程式設計師的最大
樂趣在於自己動腦,用不同的思路寫出不同的演算法。
**如下:

view code

static

list

<

int>

generatenumber1()

}return

result;

}static

list

<

int>

generatenumber2()

intindex =0

;int

value =0

;for

(inti =

1; i

<=

6; i++)

return

result;

}static

int generatenumber3()

intindex =0

;int

value =0

;for

(inti =

0; i

<

6; i++)

return

result;

}

不重複隨機數生成

直接上 生成 0,total 的隨機數 最大隨機數 ilist private static ilistgetrandomsequence int total random random new random for var i listbase.count 1 i 0 i return listo...

生成不重複的隨機數

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

隨機數生成(永不重複)

public class randomtreeutils char chars new char char chars new char int treedeeps chars.length int key 7 最多生成7位數 if treedeeps key 返回樹形 arraylist tree...