【问题标题】:Calculating probability for FUNPROB计算 FUNPROB 的概率
【发布时间】:2014-08-13 08:02:51
【问题描述】:

关于 - FUNPROB

解决办法是:

int N, M;
while(1) {
    scanf("%d %d", &N, &M);
    if (0 == N && 0 == M) break;

    if (N > M) printf("0.000000\n");
    else {
        double res = (double) (M-N+1) / (M+1);
        printf("%.6f\n", res);
    }   
}   

我的问题是关于行

res = (M-N+1) / (M+1);

如何得出这样计算概率的结论?

【问题讨论】:

    标签: c++ math probability


    【解决方案1】:

    找到了答案。 问题关键词是戴克词和加泰罗尼亚语数字。 @Ali 的答案证明答案是正确的,但没有解释我们是如何得出这个数字的。

    1. 意识到如果 M

    2. 如果 M >= N,它是发生变化的必要条件,但不是充分条件。你需要有正确的排队人顺序。例如。 M=3, N=2 MMMNN 是正确的,而 NNMMM 是不正确的。所以我们必须过滤掉不正确的可能队列。

    可以根据在一个时间步中上升/下降的路径来考虑问题。 X轴为时间轴,+Y轴为M,-Y轴为N。 如果我们从 (0, 0) 开始,每个 M 向上遍历 1 个单位,每个 N 遍历 -1 个单位,那么我们总是最终到达 (M+N, M-N)。

    我们的答案是:(从 (0, 0) 到 (M+N, M-N) 的路径总数 - 至少经过 X 轴一次的路径)/ 路径总数。

    解决上述问题的答案为 (M-N+1)/(M+1)。

    *分子中的第二项来自反射原理。如果您想了解更多详细信息,请添加评论,我会更新答案。

    最后一部分https://en.wikipedia.org/wiki/Bertrand%27s_ballot_theorem#Variant:_ties_allowed

    【讨论】:

      【解决方案2】:

      起初很明显,如果N>M概率为零。

      现在我想在N 上使用指示来证明。考虑M>0 我想证明对于每个N=<M 我们有res = (M-N+1) / (M+1) 对于N=0 很明显概率是1

      对于N=1,将我们5$ 的每个人按任意顺序放入队列中,现在对于带有10$ 的人,您可以将他放在除队列前面之外的任何位置,这样您就可以在M+1 位置之间你有M+1-1 的选择。所以对于N=1,你有:res = (M-1+1) / (M+1)

      假设每个N=<k 的公式都是正确的,我想证明N=k+1 公式是否仍然正确。为此,将M5$k 10 美元的人放在任意队列中。我们假设res = (M-K+1) / (M+1) 是工作这个队列的概率,每个人都可以拿到他的票。如果10$ 人落后于5$ 人,则考虑此队列中的一个工作队列,删除它们并递归执行此操作,直到没有5$ 人。这将起作用,因为正如我在上面所说的,队列的第一个人是10$ 一个,而且我还说过N<MK+1 人放入队列的概率是在M-k+1 中选择一个位置,因为我们从队列中删除 k 10$ 人。就像我们对N=1 所说的那样,所以我们有可能将K+1th 5$ 人放入队列中:((M-k) - 1 +1) / ((M - k) +1)(*) 并且通过指示我们有@987654354 的工作队列的概率@ 是:(M-k +1) / (M +1)( * ) 来自 () 和 ( * *) 我们有可能将 K+110$M5$ 的人放在队列中问题条件是:

      [((M-k) - 1 +1) / ((M - k) +1)] * [(M-k +1) / (M +1)] = ((M-k) - 1 +1) / ( M +1) = (M-(k+1) +1) / (M +1)

      证明到此结束:)。

      【讨论】:

      • 你的答案没有解释如何到达最后一个学期,请参阅我的答案以获得我正在寻找的答案!谢谢!
      • @hack3r 实际上它确实解释了。我试着用大约 20 行来解释它,如果你不明白,你可以简单地问你不明白的部分,而不是几个月后说这不是你要找的!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      • 2021-04-04
      相关资源
      最近更新 更多