#include <stdio.h>
#define  NUMBER 20  /*  This is 1/the interval...for 0.1 it is 10, 0.05 20... */
#define  LEN 427    /*  Number of lines in value.dat  */
main() {
  FILE *fin, *fout;
  int i,j,val[NUMBER],fact(),total=0,sum,oldtot;
  float pi;

  fin=fopen("/mit/smmadana/value.dat","r");
  fout=fopen("/mit/smmadana/multi.dat","w");
  fprintf(fout,"\n");
    
  for(j=0;j<8;j++) 
    fprintf(fout," Pi[%d]  ",j);
  fprintf(fout,"  Combinations\n\n");

  for(i=0;i<LEN;i++) {
    fprintf(fout,"\n");
    sum=1;
    for(j=0;j<NUMBER;j++) 
      val[j]=0;
    for(j=0;j<8;j++) {
      fscanf(fin,"%f ",&pi);
      fprintf(fout,"  %1.2f   ",pi);
      val[((int)(NUMBER*pi))]++;
    }
    for(j=0;j<NUMBER;j++) 
      sum*=fact(val[j]);
    oldtot=total;
    total+= (40320/sum);
    fprintf(fout,"     %5d",total-oldtot);
  }
  fclose(fin);
  fprintf(fout,"\n\ntotal combinations: %d\n",total);
  fclose(fout);
}
/*****************************************************************************/
int fact(n)
int n; {
  int f[9];

  f[0]=f[1]=1; f[2]=2; f[3]=6; f[4]=24; f[5]=120; f[6]=720; f[7]=5040;
  f[8]=40320;
  return(f[n]);
}
