牛客竞赛题库(NC232257)

#include<stdio.h>

int main()
{
    int n;
    scanf("%d", &n);
    if (n % 2 == 0)
    {
        printf("%d\n", n / 2);
    }
    else
    {
        printf("%d %d\n", n / 2, n / 2 + 1);
    }
    return 0;
}

这道题涉及到我们高中的二项式分布,要轻松做出,需要了解此知识点,我们就先用二项式分布来讲解此题。

在这两人的游戏中,一共n局游戏,每局游戏Alice获胜的概率p=1/2,失败的概率为1-p=1/2,设Alice获胜的局数为随机变量X,那么X服从参数为n和p=1/2的二项式分布,即X~B(n,1/2)。符合二项式定义,也就是n次独立重复试验,每次试验Alice获胜概率为1/2。

下面我用纸写的,打字不方便。

我写这些并非小题大做,这题凭直觉也可以做出来,是因为(1/2)^n这个值是固定的,只考虑组合数就行。但下次概率变为1/3又该如何应对,所以要懂得每道题的原理,我们才能从容应对类似的题目以及变形题目。

解释一下代码中n为奇数中的输出(即第13行),为何不是(n-1)/2 , (n+1)/2 ?

因为在这个代码中n/2是取整数,没有四舍五入,直接去掉小数点后面的数字,故直接可以n/2,n/2+1。

牛客竞赛题库(C语言) 文章被收录于专栏

这是我对题库写的代码以及分析,由易到难,我会坚持把它写完,可能有些粗糙,专栏免费,不想看可以划走。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务