srm 152 div1 500(简单概率计算)

题意:
你有n台分布的服务器,用来分配id给客户端。id池大小为N。
每台服务器负责分配 ai 个id出去
现在有两个方案
1)每台服务器每次分配都是随机的
2)每台服务器记下它分配过的id,然后只分配没用过的
思路:
1)所有分配都是一样的。。
2)中想清楚样本空间是怎样变化的就好了,每台服务器一开始是N,然后每分配一个减少1

class Collision
{
        public:
        double probability(vector <int> assignments, int ids)
        {
        double p1 = 1.0, p2 = 1.0, n = ids, d;
        int sum = 0;
        for (int i=0;i<assignments.size();++i) {
            sum += assignments[i];
            d = ids;
            for (int j=0;j<assignments[i];++j) {
                p1 = p1 * n/ids;
                p2 = p2 * n--/d--;
            }
        }
        if (sum > ids) return 0;
        return abs(p1 - p2);
        }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值