我有以下代码使用java.util.Random和2d数组生成0和1的矩阵。我想知道是否存在一种方法来定义矩阵中每行出现0和1的可能性。我希望产生0和1的概率相等。

我想将此matlab等效代码转换为将矩阵生成为java等效对象。

G= rand(10,20)<.5


有什么想法或建议吗?

谢谢,
巴维雅

最佳答案

没有使用数字填充数组的预定义方法,但是您需要对每个元素进行叠加并为其分配数字。像这样:

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。

07-26 02:46