在java中生成一个0和1的矩阵,同时选择概率

时间:2012-02-04 17:01:39

标签: java matrix binary equals probability

我有使用java.util.Random和2d数组生成0和1的矩阵的foll0wing代码。我想知道是否有办法定义矩阵中每行发生0和1的概率。我希望生成0和1的概率相等。

我想将这个matlab等效代码转换为生成java等价的矩阵。

G= rand(10,20)<.5

有任何想法或建议吗?

谢谢, Bhavya

2 个答案:

答案 0 :(得分: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;
        }
    }
}

这假定默认随机生成器足够好。如果您想要更高的概率1或0,请调整0.5。

答案 1 :(得分:0)

  

我希望产生0和1的概率相同。

随机并非完全随机,但是,对于这个用例,如果你只是:

,你很可能不会注意到这种差异。
Random R = new Random();
int zeroOrOne = r.nextInt() % 2; 

之后,您可以创建一个频率表,以查看您运行的样本的实际分布情况。