#include<iostream>
#include<cstring>
#include<algorithm>
#include<stdio.h>
using namespace std;
double A[505],B[505];
double P[505];
int main()
{
int T;
cin>>T;
int a,b,c,k1,k2,k3,n;
while(T--)
{
cin>>n>>k1>>k2>>k3>>a>>b>>c;
double pe=1.0/(k1*k2*k3);
int w=a+b+c;
memset(P,0,sizeof P);
for(int i=1;i<=k1;i++)
for(int j=1;j<=k2;j++)
for(int v=1;v<=k3;v++)
{
if(i!=a||j!=b||v!=c)
P[i+v+j]+=pe;
}
memset(A,0,sizeof A);
memset(B,0,sizeof B);
for(int i=n;i>=0;i--)
{
for(int k=3;k<=k1+k2+k3;k++)
{
A[i]+=A[i+k]*P[k];
B[i]+=B[i+k]*P[k];
}
A[i]+=pe;
B[i]+=1;
}
printf("%.17lf\n",B[0]/(1-A[0]));
}
return 0;
}
解析原博文写的很详细,发此文只为了记录.