我使用下面的代码来使用java.util.Random和2d数组生成0和1的矩阵。我想知道是否有方法来定义矩阵中每行发生0和1的数量的概率。我想要产生0和1的概率相等。在java中生成0和1的矩阵,同时选择概率
我想转换这个matlab等效代码来生成一个矩阵到java等价物中。
G= rand(10,20)<.5
任何想法或建议吗?
感谢, 巴维亚
我使用下面的代码来使用java.util.Random和2d数组生成0和1的矩阵。我想知道是否有方法来定义矩阵中每行发生0和1的数量的概率。我想要产生0和1的概率相等。在java中生成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。
我想有两种生成0和1的概率相等。
随机不是完全随机的,但是,对于这种使用情况下,你是不太可能发现其中的差别,如果你只是:
Random R = new Random();
int zeroOrOne = r.nextInt() % 2;
之后,您可以创建一个频率表,看看实际分布在无论你运行多少样本。