我有以下代码使用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。