zoukankan      html  css  js  c++  java
  • stone [期望]

    也许更好的阅读体验

    (mathcal{Description})

    (n) 堆石子,依次编号为 (1, 2,ldots , n),其中第 (i) 堆有 (a_i) 颗石子
    你每次等概率随机选择一颗石子,并取完它所在的那一堆石子
    求第 (1) 堆石子被取走的时间的期望

    (nleq 10^5,a_ileq 10^9)

    (mathcal{Solution})

    这题不是很难,然而并不是考虑(DP),用的比较巧妙的方法
    考虑期望的线性性,设(p_i)表示第(i)堆石子在第一堆石子前
    若第(i)堆石子在第(1)堆石子前被取出来,那么就会多(1)次取走操作
    换成期望就是(E=sumlimits_{i=2}^np_i*1)

    现在的问题就是求(p_i)
    考虑第(i)堆石子在第(1)堆石子之前被取走
    假设现在有(tot)个石子,那么取走(i)的概率是(dfrac{a_i}{tot}),取走(1)的概率是(dfrac{a_1}{tot})
    无论(tot)的值是什么,第(i)堆石子比第(1)堆石子先被取走的概率都是(dfrac{a_i}{a_i+a_1})
    于是这道题就解决了

    (mathcal{Code})

    /*******************************
    Author:Morning_Glory
    LANG:C++
    Created Time:2019年11月07日 星期四 20时01分34秒
    *******************************/
    #include <cstdio>
    #include <fstream>
    using namespace std;
    const int maxn = 100005;
    int n,x;
    double ans;
    int main()
    {
    	scanf("%d%d",&n,&x);
    	for (int i=2;i<=n;++i){
    		int p;
    		scanf("%d",&p);
    		ans+=1.0*p/(x+p);
    	}
    	ans+=1;
    	printf("%.10lf
    ",ans);
    	return 0;
    }
    
    

    如有哪里讲得不是很明白或是有错误,欢迎指正
    如您喜欢的话不妨点个赞收藏一下吧

  • 相关阅读:
    程序书写规范
    点灯主要顺序
    复用功能重映射
    STM32 (战舰)
    html5 javascript 新增加的高级选择器更精准更实用
    html5 javascript 事件练习3键盘控制练习
    html5 javascript 事件练习3随机键盘
    html5 javascript 事件练习2
    html5 javascript 事件练习1
    html5dom2
  • 原文地址:https://www.cnblogs.com/Morning-Glory/p/11815561.html
Copyright © 2011-2022 走看看