2012-02-04 54 views
1

我使用下面的代碼來使用java.util.Random和2d數組生成0和1的矩陣。我想知道是否有方法來定義矩陣中每行發生0和1的數量的概率。我想要產生0和1的概率相等。在java中生成0和1的矩陣,同時選擇概率

我想轉換這個matlab等效代碼來生成一個矩陣到java等價物中。

G= rand(10,20)<.5 

任何想法或建議嗎?

感謝, 巴維亞

回答

1

沒有使用數字填充陣列的預定義方法,但是您需要對每個元素進行填充併爲其指定編號。類似這樣的:

Random random = new Random(); 

for (int outerIndex = 0; outerIndex < matrix.length; outerIndex++) { 
    for (int innerIndex = 0; innerIndex < matrix[outerIndex].length; innerIndex++) { 
     if (random.nextDouble() < 0.5) { 
      matrix[outerIndex][innerIndex] = 1; 
     } else { 
      matrix[outerIndex][innerIndex] = 0; 
     } 
    } 
} 

這假定默認的隨機發生器足夠好。如果您希望1s或0s的概率更高,請調整0.5。

0

我想有兩種生成0和1的概率相等。

隨機不是完全隨機的,但是,對於這種使用情況下,你是不太可能發現其中的差別,如果你只是:

Random R = new Random(); 
int zeroOrOne = r.nextInt() % 2; 

之後,您可以創建一個頻率表,看看實際分佈在無論你運行多少樣本。