2012-02-04 10 views
1

java.util.Randomと2次元配列を使用して0と1の行列を生成するfoll0wingコードがあります。私は行列の行ごとに発生する0と1の数の確率を定義する方法があるかどうか疑問に思っていました。私は、0と1の両方を生成する確率が等しいことを望みます。Javaで0と1の行列を生成し、確率を選択します。

このMATLABの同等のコードを変換して、Java同等のものに行列を生成したいとします。

G= rand(10,20)<.5 

アイデアや提案はありますか?

おかげで、 バウィヤ

答えて

1

配列に数値を入力するための定義済みの方法はありませんが、代わりに各要素にlopを実行して番号を割り当てる必要があります。このようなもの:

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; 
     } 
    } 
} 

これは、デフォルトのランダムジェネレータが十分であることを前提としています。 1または0の確率を高くしたい場合は、0.5を調整します。

0

は、私は両方の0と1を生成する等しい確率を持っていると思います。その後

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

は、あなたが実際の分布を超える参照するには頻度表を作成することができます。

ランダムこのユースケースのために、あなたはあなただけあれば違いに気付くことは非常にほとんどありません、しかし、完全にランダムではありません多くのサンプルを実行します。

関連する問題