2
$\begingroup$

enter image description here

hi

How can I do for mathematics to expand this equation for any value of the variables i, j, k

$\endgroup$
  • $\begingroup$ Possible duplicate: mathematica.stackexchange.com/questions/56015/…. $\endgroup$ – JimB Nov 20 '17 at 4:11
  • $\begingroup$ I need mahematica to develop the formula, not calculate! $\endgroup$ – susy diaz Nov 20 '17 at 22:22
  • $\begingroup$ I'm not understanding how you want to provide the input and obtain an output. For example, do you want union[{a1, a2, a3}] to produce pr[a1] + pr[a2] + pr[a3] - pr[{a1, a2}] - pr[{a1, a3}] - pr[{a2, a3}] + pr[{a1, a2, a3}] (assuming you have a function pr that provides the associated probabilities of the events) ? $\endgroup$ – JimB Nov 20 '17 at 22:44
  • $\begingroup$ if I need that given an entry for some i = 4 develop the formula for P (A1 + A2 + A3 + A4) for example, now if you calculate it better $\endgroup$ – susy diaz Nov 22 '17 at 22:20
2
$\begingroup$

Try this exercise in pattern matching. Effectively this a recursive definition of the inclusion-exclusion formula.

p[un[x_, y__]] := p[un[x]] + p[un[y]] - p[in[un@x, un@y]];
un[un[x__]] := un[x];
un[in[x__]] := in[x];
in[un[x__]] := un[x];
in[x_, un[z_, y__]] := un[in[un@x, un@z], in[un@x, un@y]];
in[in[x__]] := in[x];
in[in[x__], in[y__]] := in @@ Intersection[{x, y}]

result = p[un[x, y, z, t, q, w, r]] /. un[x_] :> x; 
patterns = Cases[result, p[x___], Infinity];
arglength[p[in[x__]]] := Length[{x}] -> p[x];
arglength[p[x_]] := 1 -> p[x]
counts=Map[Length]@GatherBy[#, First] &@Map[arglength]@patterns

{7, 21, 35, 35, 21, 7, 1}

counts == Table[Binomial[7, i], {i, 1, 7}]
True

If you want all the steps use Trace

Trace[p[un[x, y, z]] /. un[x_] :> x]
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.