zoukankan      html  css  js  c++  java
  • 杭电4336 Card Collector 皇星客栈

    1. 首先这里概率是同时取得,与不同步取得的概率有区别,很多人思想就局限在这里。
    2. 至少得到一张A卡的期望值+至少得到一张B卡的期望值-至少得到一张卡的期望值==至少能得到A卡和B卡的期望值,这是两张卡的情况,这里我重点分析一下这一种情况:如0.1 0.4,我们要想至少得到第一张卡,那么就要满足1/0.1=10,而如果想要至少得到第二张,就要满足1/0.4=2.5,有人会说如果我抽到了第一张卡,还剩下9张,可以分配给第二张取呀?说到这里,就要注意一点,这里是同时取总卡片,那个是单独取得,也就是你取得第一张卡的情况下面,取得第二张卡的概率,这是条件概率,是单独取得。我们这里是同时取得总卡片,我们现在取了1/10+1/0.4=12.5,而这里同时取得情况下,在10张里面含有A卡或B卡的期望值1/(0.1+0.4),在2.5张里面含有A卡或B卡的期望值为1/(0.1+0.4)=2,想一想这里含有A卡或B卡的分母为什么是1,因为我们求的是至少能得到A卡或B卡,考虑的都是至少,也就是取得期望最小值,所以是1. 那么:                                                                                                          1/0.1+1/0.4-(1/(0.1+0.4))==10.500;                                                                                                        
    3. 同理往下推到n,一样也可以,按照容斥原理,加奇减偶。

              往下推到n得到1/p1+1/p2+……+1/Pn-(1/(P1+P2)+1/(P2+P3)+……+1(Pn+P1))+1/(P1+P2+P3)+……+1/(P1+P2+P3)+……+1/(Pn-1+Pn+P1)+…………(-1)(n-1)/(p1+p2+P3+……+Pn);

     1 #include<stdio.h>
     2 int N;
     3 
     4 double seq[25];
     5 
     6 int main()
     7 {
     8     int mask, odd,i,j;
     9     double sum, ret;
    10     while (scanf("%d", &N) == 1) {
    11         ret = 0;
    12         for (i = 1; i <= N; ++i) {
    13             scanf("%lf", &seq[i]);
    14         }
    15         mask = 1<<N;
    16         for ( i = 1; i < mask; ++i) {
    17             odd = 0;
    18             sum =0;
    19             for ( j = 0; j < N; ++j) {
    20                 if ((1 << j) & i) {
    21                     ++odd;
    22                     sum += seq[j+1];
    23                 }
    24             }
    25             if (odd & 1) {  // 加奇减偶 
    26                 ret += 1./sum;
    27             }
    28             else {
    29                 ret -= 1./sum;        
    30             }
    31         }
    32         printf("%.6lf\n", ret);
    33     }
    34     return 0;     
    35 }
  • 相关阅读:
    发一注册表监控驱动代码
    Nikto
    在c#使用IOCP(完成端口)的简单示例
    C#中ref和out的使用小结
    Powerful x86/x64 Mini HookEngine
    C语言写的多线程下载器
    快速排序算法c#
    拓扑排序
    Dijkstra算法
    SRM 550 DIV2
  • 原文地址:https://www.cnblogs.com/huangxingkezhan/p/2631523.html
Copyright © 2011-2022 走看看