55 lines
919 B
C
55 lines
919 B
C
|
|
#include <stdio.h>
|
|
|
|
|
|
int rcalc ( int n, int fgn, int cfn , int level)
|
|
{
|
|
int retval = 0,i;
|
|
|
|
|
|
printf("level: %d n %d fgn %d cfn %d \n", level, n,fgn, cfn);
|
|
|
|
|
|
level ++;
|
|
|
|
if ( n/fgn < fgn )
|
|
retval = n%fgn * cfn;
|
|
else
|
|
retval += rcalc(n/fgn, fgn, cfn, level);
|
|
|
|
retval += n + (fgn-1) * fgn * cfn;
|
|
|
|
// now calculate how many to do on this level
|
|
//
|
|
return retval;
|
|
}
|
|
|
|
|
|
|
|
|
|
main () {
|
|
|
|
int r, n, fgn, cfn;
|
|
|
|
printf(" \n State explosion FMMD approximation \n");
|
|
printf(" Enter number of base components: ");
|
|
fflush(stdout);
|
|
scanf("%d",&n);
|
|
|
|
printf(" Enter number of components in functional group: ");
|
|
fflush(stdout);
|
|
scanf("%d",&fgn);
|
|
|
|
printf(" Enter number of failure modes for each component:");
|
|
fflush(stdout);
|
|
scanf("%d",&cfn);
|
|
|
|
r = rcalc ( n, fgn, cfn, 0 );
|
|
printf(" for single failures FMMD=%d components cross prod failure modes %d\n",r,n*(n-1)*cfn);
|
|
|
|
}
|
|
|
|
|
|
|
|
|