To show the flexibility of the JMP scripting language, I created a simple script which will compute the yield of a system which consists of M blocks where K out of M need to be functional for the system to be considered functional.

```
Names Default to Here(1);
K = 8; // At least K out of M blocks need to be functional
M = 10; // Total number of blocks in system
Y.block = 0.90; // Probability of one block being functional
BinomialCoeff = Function( {n, k}, // calc coefficients of binomial expansion
Return( Factorial(n)/Factorial(k)/Factorial(n-k) );
);
Y.system = 0;
for (i = 0, i <= (M-K), i++,
Y.system = Y.system + BinomialCoeff(M,i)*Y.block^(M-i)*(1-Y.block)^i;
);
write("System yield of ",K," out of ",M," blocks is ",Y.system);
```

So in this example, if each block has 90% yield and you have 10 blocks where 8 need to be functional for the system to work, the system yield will be 93% (or 74% if 9 out of 10, or 35% if 10 out of 10).

Mark