Assume we run this program 100 times.

50 times it fails at p1 and only 50 times the control reaches to p2.

and P2 fails at 40 %

40% of 50 is 20

Therefore out of 100 times it fails 70 times....

7 votes

If a program $P$ calls two subprograms $P1$ and $P2$ and $P1$ can fail $50$% of the time and $P2$ can fail $40$% of the time, what is the failure rate of program $P$?

- $50$%
- $60$%
- $70$%
- $10$%

- 🚩 Edit necessary | 👮 Ollie | 💬 “Correct answer is (c) 70% while in GateOverflow answer key it is given (d) 10%, please correct the key.”

22 votes

Best answer

Program P fails when either P1 fails or P2 fails, i.e.** failure of P1 + failure of P2. **

But this will also contain the case when both P1 and P2 fails at the same time, i.e. **failure of P1 ∩ failure of P2**, since this case will be already be counted on (**P1+P2**).

Therefore, our final answer will be **failure of P1 + failure of P2 - (failure of P1 ∩ failure of P2) **

**= $\left ( \frac{50}{100} \right )$ + $\left ( \frac{40}{100} \right )$ -$\left ( \frac{50}{100} * \frac{40}{100}\right )$**

**= $\left ( \frac{90}{100} \right )$ - $\left ( \frac{2000}{10000} \right )$**

**= $\left ( \frac{90}{100} \right )$ - $\left ( \frac{20}{100} \right )$**

**= $\left ( \frac{70}{100} \right )$**

**= 70%**