#include<stdio.h>
#define SIZE 36
#define fun(x,y,z) \
for(int i##x=1;i##x<=y;i##x++){\
z;\
}
int main()
{
int pyram[SIZE+1]={0,};
int cubic[SIZE+1]={0,};
fun(1,4,fun(2,4,fun(3,4,fun(4,4,fun(5,4,fun(6,4,fun(7,4,fun(8,4,fun(9,4,pyram[i1+i2+i3+i4+i5+i6+i7+i8+i9]++;)))))))));
fun(1,6,fun(2,6,fun(3,6,fun(4,6,fun(5,6,fun(6,6,cubic[i1+i2+i3+i4+i5+i6]++;))))));
for(int i=1;i<=SIZE;i++)
cubic[i]+=cubic[i-1];
long total=0;
for(int i=SIZE;i;i--)
total+=(long)pyram[i]*cubic[i-1];
long double rate=total;
fun(0,6,rate/=6);
fun(0,9,rate/=4);
printf("%.7Lf\n",rate);
}
simple brute force |