Robin_PHD/presentations/System_safety_2011/state_exp.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);
}