【问题标题】:How to find the probability of each element in a array getting a certain random variable?如何找到数组中每个元素获得某个随机变量的概率?
【发布时间】:2020-08-08 07:40:11
【问题描述】:

我创建了一个名为 new array 的数组并分配了值,因此数组中的第一个节点为 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


    【解决方案1】:
    • 对于第一个元素:必须在一开始就设置为零,因此概率为1
    • 对于第二个元素:
      • 在每个循环迭代中:
        • 每个元素被选中的可能性相同,这意味着第二个元素有十分之一的机会(概率 0.1)被选中。
        • 所选元素同样可能设置为零或一,这意味着它有二分之一的机会(概率 0.5)被设置为零。
        • 事件“第二个被选中”和“被选元素置零”是独立的,所以我们可以将它们的概率相乘得到“第二个元素置零”事件的概率(意思是“第选择第二个元素并将所选元素设置为零”):0.1 × 0.5 = 0.05。
        • 这意味着事件“第二个元素设置为零”的概率为 1 - 0.05 = 0.95。
      • 总体:
        • 由于有 100 次迭代,并且它们都是相互独立的,因此事件“第二个元素从不设置为零”(意思是“在每次迭代中,第二个元素都没有设置到零”) 的概率为 0.95100 ≈ 0.00592。
        • 这意味着“第二个元素设置为零至少一次”事件的概率1 - 0.95100 ≈ 0.994
    • 第三个、第四个等元素等价于第二个元素——我只是为了方便选择了第二个元素——所以它们的概率也是1 − 0.95100 ≈ 0.994 至少设置为零一次。

    【讨论】:

      【解决方案2】:

      在您的代码中,概率取决于 nextInt 函数的实现。 因此,您必须研究用于确定最终概率的随机函数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-07-29
        • 2021-03-13
        • 2020-05-07
        • 2021-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多