如何求一个数组中每个元素得到某个随机变量的概率?

问题描述 投票:0回答:2

我创建了一个名为new array的数组,并分配了值,所以数组中的第一个节点是0,其余的是1.然后我做了一个循环,将0和1之间的随机变量分配给它。

int[] arr = new int[10];
arr[0] = 0;
 for (int m = 1; m < 10; m++) {
         arr[m] = 1;
    }

然后我做了一个循环,将一个0和1之间的随机变量赋值给它。

for(int i = 0;i < 100; i++){
    U = rnd.nextInt(2);
   int j = rnd.nextInt(10);
    arr[j] = U;
}

我想写一段代码,求这个数组中每个元素至少被分配一次0号的概率。它被分配到0的概率是0.1吗?

java arrays statistics probability
2个回答
0
投票

在你的代码中,概率取决于nextInt函数的实现.所以,你必须研究你用来确定最终概率的随机函数。


0
投票
  • 对于第一个元素:在最开始的时候必然设置为0,所以概率是 1.
  • 对于第二个元素。
    • 在每次循环迭代中
      • 每一个元素都有同样的可能被选中,这意味着第二个元素有十分之一的机会被选中(概率0. 1)。
      • 被选中的元素同样有可能被设置为0或1,也就是说它有二分之一的机会(概率0.5)被设置为0。
      • "第二个被选择 "和 "被选择的元素被置为零 "这两个事件是独立的,所以我们可以将它们的概率相乘,得到 "第二个元素被置为零 "事件的概率(意思是 "第二个元素被选择,被选择的元素被置为零")。0.1 × 0.5 = 0.05.
      • 这意味着 "第二个元素被 设为零 "的概率为1-0.05=0.95。
    • 总的来说。
      • 由于有100次迭代,而且都是相互独立的,所以 "第二个元素是... 从来没有 设为零"(意思是 "在每一次迭代中,第二个元素不设为零")的概率为0.95。100 ≈ 0.00592.
      • 这意味着 "第二个元素被设置为零 "的事件。至少一次"有概率 1 − 0.95100 ≈ 0.994.
  • 第三个、第四个等元素相当于第二个元素--我只是为了方便而选择了第二个元素--所以它们也各自有一个概率是: 。1 − 0.95100 ≈ 0.994 至少有一次被设为零的。
© www.soinside.com 2019 - 2024. All rights reserved.