指示器随机变量|概率论|程序设计

子曰.“狂而不直,侗而不愿,

悾悾而不信,吾不知之矣。”

孔子说:“狂妄但是不正直,幼稚但是不谨慎,看上去诚恳却不受信用,我不知道​为什么有人会这样。”

​本文讲述了指示器随机变量,和它在程序上的应用。我们需要做出这样的步骤​。

1构造指示器随机变量,​表现出和式的形式。

2利用期望的线性性质,将期望变成概率。

3求解出某事发生的概率。​

首先,随机变量是试验结果的一个实值函数。

给定一个样本空间S,和一个事件A。那么关联到事件A的随机变量被定义如下。

我们从扔一次硬币这个最基础的例子说起。

样本空间为抛一次硬币翻转的样本空间是S={H,T},

P(H)=P(T)=1/2

#include<bits/stdc++.h>using namespace std;#define int long longconst int N=100010,M=3*N;int h[N],e[M],ne[M];int idx;void add(int a,int b){  e[idx]=b;  ne[idx]=h[a];  h[a]=idx++;}double  ans;int n;void dfs(int u,int dep,int fa){  ans+=1.0/dep;  for(int i=h[u];~i;i=ne[i])  {    int j=e[i];    if(j!=fa)    {      dfs(j,dep+1,u);    }  }}signed main(){  memset(h,-1,sizeof h);  cin>>n;  for(int i=1;i<=n-1;i++)  {    int a,b;    cin>>a>>b;    add(a,b);    add(b,a);  }  dfs(1,1,0);  printf("%.10lf",ans);}

https://www.luogu.com.cn/problem/P1297

#include<bits/stdc++.h>using namespace std;#define int long longconst int N=10000010;int n,A,B,C,a[N];double ans;signed main(){  scanf("%d%d%d%d%d", &n, &A, &B, &C, a + 1);for (int i = 2; i <= n; i++)  a[i] = ((long long) a[i - 1] * A + B) % 100000001;for (int i = 1; i <= n; i++)  a[i] = a[i] % C + 1;  for(int i=1;i<=n;i++)  {    if(i==1)    {      if(a[1]>=a[n])      {        ans+=1.0*a[n]/a[1]/a[n];      }      else       {        ans+=(1.0/a[n]);      }    }    else    {      if(a[i]>=a[i-1])      {        ans+=1.0*a[i-1]/a[i]/a[i-1];      }      else      {        ans+=(1.0/a[i-1]);      }    }      }  printf("%.3lf",ans);} 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值