求每只队伍都回答出题目,且至少有一只队伍回答出n道题的概率
存在性问题我们可以转化为任意性问题用P(每支队伍都回答出题目)-P(每只队伍回答的题目数小于n)然后我们可以递推求解![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 var f:array[0..1010,0..35,0..35] of double; 2 p:array[0..1010,0..35] of double; 3 k,i,j,n,m,t:longint; 4 s,ans,tmp:double; 5 6 begin 7 while not eof do 8 begin 9 readln(n,t,m);10 if (n=0) and (t=0) and (m=0) then break;11 for i:=1 to t do12 begin13 for j:=1 to n do14 read(p[i,j]);15 readln;16 end;17 fillchar(f,sizeof(f),0);18 for i:=1 to t do19 begin20 f[i,0,0]:=1;21 for j:=1 to n do22 begin23 f[i,j,0]:=f[i,j-1,0]*(1-p[i,j]);24 for k:=1 to j do25 f[i,j,k]:=f[i,j-1,k-1]*p[i,j]+f[i,j-1,k]*(1-p[i,j]); //f[i,j,k]表示第i支队前j道题答出k题的概率26 end;27 end;28 ans:=1;29 for i:=1 to t do30 ans:=ans*(1-f[i,n,0]);31 tmp:=1;32 for i:=1 to t do33 begin34 s:=0;35 for j:=1 to m-1 do36 s:=s+f[i,n,j]; //答出题目出数