//////////////////////////////////////////////////////////////////////////////// // File: testmultinomialcoef.c // // // // Test Multinomial_Coefficient and xMultinomial_Coefficient in the file // // multinomial_coefficient.c // // // //////////////////////////////////////////////////////////////////////////////// #include #include // Externally defined routines extern double Multinomial_Coefficient(int n, int x[], int m); extern long double xMultinomial_Coefficient(int n, int x[], int m); extern int Factorial_Max_Arg( void ); // Internally defined routines void prt_Table(int n); void prt_xTable(int n); int main() { int n; int x[3]; printf("Program: testmultinomialcoef.c\n"); printf("Test Multinomial_Coefficient() \n\n"); prt_Table(10); prt_Table(11); prt_Table(12); printf("\n\nLarge n\n"); n = Factorial_Max_Arg( ) + 10; x[0] = 1; x[1] = 2; x[2] = n - x[0] - x[1]; printf("C(%3d;[%2d,%2d,%3d]) = %22.16e\n", n,x[0],x[1],x[2],Multinomial_Coefficient(n,x,3)); printf("\nTest xMultinomial_Coefficient() \n\n"); prt_xTable(10); prt_xTable(11); prt_xTable(12); printf("\n\nLarge n\n"); n = Factorial_Max_Arg( ) + 10; x[0] = 1; x[1] = 2; x[2] = n - x[0] - x[1]; printf("C(%3d;[%2d,%2d,%3d]) = %22.16Le\n", n,x[0],x[1],x[2],xMultinomial_Coefficient(n,x,3)); } void prt_Table(int n) { int i; int x[3]; printf("n %3d\n",n); x[0] = 2; x[1] = 3; x[2] = n - x[0] - x[1]; printf(" x = %3d %3d %3d C(n;x) = ",x[0],x[1],x[2]); printf(" %4.0f ",Multinomial_Coefficient(n,x,3)); printf("\n"); } void prt_xTable(int n) { int i; int x[3]; printf("n %3d\n",n); x[0] = 2; x[1] = 3; x[2] = n - x[0] - x[1]; printf(" x = %3d %3d %3d C(n;x) = ",x[0],x[1],x[2]); printf(" %4.0Lf ",xMultinomial_Coefficient(n,x,3)); printf("\n"); }