關於產生一個隨機數組

來源:互聯網
上載者:User

產生隨機數的最基本代碼是:

Random rand=new Random();

int i=rand.Next(0,100);

Next函數的參數可以為空白,也可以是一個值的範圍。

像這種方法通常產生一個隨機數不會有問題,但是如果要產生一個隨機數組的話就不見得好用了,比如:

List<int> lstRnd=new List<int>();

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在每次迴圈的時候都是不一樣的,那麼為什麼不用它來做種子呢?

List<int> lstRnd=new List<int>();

for (int i=0;i<10;i++)

{

  Random rand=new Random(i);

  lstRnd.Add(rand.Next(0,100));

}

這樣一來就可以保證每次隨機的數肯定都是不一樣的了。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.