生成隨機數的最基本**是:
random rand=new random();
int i=rand.next(0,100);
next函式的引數可以為空,也可以是乙個值的範圍。
像這種方法通常生成乙個隨機數不會有問題,但是如果要生成乙個隨機數組的話就不見得好用了,比如:
listlstrnd=new list();
random rand=new random();
for (int i=0;i<10;i++)
lstrnd.add(rand.next(0,100));
這樣很容易會使生成的資料都是一樣的,因為我們要的是隨機數,所以這種結果肯定不是我們想要的。我們知道在隨機數裡有乙個隨機數種子的概念,只要種子不同那麼生成的隨機數肯定就也是隨機的。但是用什麼來做種子呢?通常都是時間的乙個值,比如在例項化random物件的時候:
random rand=new random(datetime.now.millisecond);
這不見得好使。因為計算機的速度是很快的所以可能會出現有10個左右的數字生成的結果還是一樣的。那怎麼辦呢?millisecond已經是datetime裡最小的時間單位了。
這裡總被乙個思維定勢所限制住,不如換另外乙個方法.由於是用到迴圈體的方法來生成數,迴圈條件的變數i在每次迴圈的時候都是不一樣的,那麼為什麼不用它來做種子呢?
listlstrnd=new list();
for (int i=0;i<10;i++)
random rand=new random(i);
lstrnd.add(rand.next(0,100));
這樣一來就可以保證每次隨機的數肯定都是不一樣的了。
關於生成乙個隨機數組
生成隨機數的最基本 是 random rand new random int i rand.next 0,100 next函式的引數可以為空,也可以是乙個值的範圍。像這種方法通常生成乙個隨機數不會有問題,但是如果要生成乙個隨機數組的話就不見得好用了,比如 listlstrnd new list ra...
乙個隨機數生成函式
include include include 乙個隨機數生成函式 此函式不是基於用線性同餘法 標準庫中的rand 基於此方法 而是以乙個knuth提出的相減方法為基礎,速度比標準庫中的rand 要快,但不標準。staticlongg next 1 設定seed為任意負數值作為種子。voidrand...
關於隨機數生成
很多學計算機的學生大學四年學下來連隨機數是怎麼產生的都弄不明白,更有甚者連隨機函式怎麼呼叫都搞不清楚,這不能不說是一種悲哀。嗯,現在讓我們一起使這種悲哀成為歷史吧 首先我們要搞清楚乙個概念,生成單個的隨機數是沒有意義的,我們所說的隨機數生成,其實都是生成乙個隨機序列。鑑於人們通常對具體的做法比對分析...