2014-03-18 53 views
0

Hy我想創建包含0和1個元素的簡單3x3矩陣。但是,當我創建包含該3x3矩陣的矩陣對象Racunalo的二維數組5x5時,所有25個矩陣在相同位置上都有0和1個元素,但我希望所有矩陣都不相同。如何做到這一點?如果有一位善良的靈魂知道靈魂,我會很感激你的幫助。這裏是我的代碼:c#隨機數始終相同

public class Racunalo 
{ 
    public int[,] informacija = new int[3, 3]; 
    public void popuniInformacijuRacunala() 
    { 
     Random rand = new Random(Guid.NewGuid().GetHashCode()); 
     for (int i = 0; i < 3; i++) 
     { 
      for (int j = 0; j < 3; j++) 
      { 
       informacija[i, j] = rand.Next(0,2); 
      } 
     } 
    } 
} 

public class Resetka 
{ 
    public static Racunalo[,] resetkaRacunala = new Racunalo[5, 5]; 

    public void popuniInformacijeSvihRacunala() 
    { 
     Racunalo rac = new Racunalo(); 
     for (int i = 0; i < 5; i++) 
     { 
      for (int j = 0; j < 5; j++) 
      { 
       rac.popuniInformacijuRacunala(); 
       resetkaRacunala[i, j]=rac; 
      } 
     } 

    } 
} 

回答

0

你的問題是所有的Randoms都是用相同的種子創建的。每個Racunalo都有相同的guid,因爲它是一個對象標識符。 嘗試創建一個沒有參數的新隨機數

Random rand = new Random();

或播種隨機每次用不同的值(也許還可以利用系統時鐘時間)

+0

我嘗試了所有可能的解決方案,包括你的'隨機蘭特=新的隨機();',我總是得到相同的結果。還有系統時鐘也是同樣的問題。 –

+0

嘗試使該Random對象爲靜態並僅創建一次 以便Racunalo的所有實例都將使用相同的隨機 – Gadol21