2016程设期末表达式的期望值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2016程设期末表达式的期望值相关的知识,希望对你有一定的参考价值。

由于提交关闭了所以我也不知道能不能A,样例能过...

描述

给定如下表达式:

A0O1A1O2A2O3A3… OnAn

其中Ai(0<=i<=n)代表操作数,Oi(1<=i<=n)代表算子。有三类算子包括‘&’、‘|’和‘^’,这些算子拥有相同的计算优先级。每个算子Oi以及它后面相邻的操作数Ai,他们可能一起消失,消失的概率为Pi(注意为保证计算精度须使用double型数据)。

例如,对于样例输入中的第一组测试数据期望计算方法为:

(P1*P2)*A0+(1-P1)*(P2)*(A0OA1)+(P1)*(1-P2)*(A0O2A2)+(1-P1)*(1-P2)*( A0O1A1O2A2)=0.1*0.2*1+0.9*0.2*(1^2)+0.1*0.8*(1^3)+0.9*0.8*(1^2^3)=0.72

输入

输入包含若干测试样例。
对于每组测试样例,第一行为正整数n ( 0 < n <= 200 )
第二行包含n+1个正整数代表操作数集合{A}(其中Ai小于2^20),
第三行包含n个算子代表操作算子集合{O},第四行包含n个浮点数代表概率集合{P}(其中0 <= Pi <= 1)。输出对于每组测试样例,第一行输出测试样例序号(从1开始)。然后,输出期望值,近似到小数点后6位。

样例输入

2 
1 2 3 
^ ^ 
0.1 0.2 
2 
8 9 10 
^ ^ 
0.5 0.78
1 
1 2 
& 
0.5

样例输出

Case 1: 
0.720000 
Case 2: 
4.940000 
Case 3: 
0.500000
 1 #include<iostream>
 2 using namespace std;
 3 int n,a[201],s;
 4 double ans,p[201];
 5 char o[201];
 6 double f(int pos,double pre,int u) //当前开始的位置pos,之前得到的数pre和之前表达式的值u 
 7 {
 8     double t,s=0;
 9     int v;
10     if(pos==n+1) return 0;
11     for(int i=pos;i<=n;i++)
12     {
13         t=pre/u; 
14         t=t/p[i]-t;
15         //cout<<t<<‘ ‘;
16         switch(o[i])
17         {
18             case &:v=u&a[i];break;
19             case |:v=u|a[i];break;
20             case ^:v=u^a[i];break;
21         }
22         t*=v;   //算出当前得到的数 
23     //    cout<<v<<endl;
24         s+=t+f(i+1,t,v);
25     }
26     return s;
27 }
28 int main()
29 {
30     int kase=0; 
31     while(cin>>n)
32     {
33         ans=1;
34         for(int i=0;i<=n;i++) cin>>a[i];
35         for(int i=1;i<=n;i++) cin>>o[i];
36         for(int i=1;i<=n;i++) cin>>p[i];
37         
38         for(int i=1;i<=n;i++)  //当所有操作符都消失 
39             ans*=p[i]; 
40         ans*=a[0];
41         ans+=f(1,ans,a[0]);
42         printf("Case %d:\n%.6llf\n",++kase,ans);
43     }
44 }

 

以上是关于2016程设期末表达式的期望值的主要内容,如果未能解决你的问题,请参考以下文章

18.06.26 16年程设期末10:游览规划

18.06.02 POJ4128:单词序列 15年程设期末06

18.15.56 vijos1496 火柴棒等式 15程设期末08

C++程设实验项目二:用正则表达式制作一个简易的SQL系统

18.04.28 17年程设考试题

HTML5期末大作业:餐饮美食网站设计——咖啡(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 咖啡网页设计 美食餐饮网页设计...(代码片段