[mnet-devel] analytical solution to the FEC reliability problem
Zooko
zooko at zooko.com
Mon Feb 24 20:14:35 GMT 2003
(Thanks to my combinatorics consultant, Amber, who explained this to me once
again.)
Suppose there are M shares, and you need to recover any K of them in order to
win.
Let's denote the probability that you win as "W".
W = P(recover K shares) + P(recover K + 1 shares) + P(recover K + 2 shares) +
... + P(recover all M shares)
So what's the probability that you recover exactly K shares? Well, there are
Choose(K, M) different combinations with which you can recover exactly K shares.
The probability of recovering exactly K shares is equal to:
P(recovering exactly K shares in the first combination) +
P(recovering exactly K shares in the second combination) +
...
P(recovering exactly K shares in the last combination)
What's the probability of recovering exactly K shares in exactly one
combination? It's the probability that the K shares specified by this
combination are recovered, *and* the M-K shares *not* specified by this
combination are *not* recovered: P(S)^K * (1-P(S))^(K-M).
Since each of these terms that say "P(recovering exactly K shares in the Nth
combination)" are disjoint, we add them together to get the probability of
recovering exactly K shares in any combination. Since they all have the same
probability, adding them all together is the same as multiplying that
probability by the number of them. Therefore:
P(recover exactly K shares) = Choose(M, K) * P(S)^K * (1-P(S))^(K-M)
Now, don't forget to get the probability of recovering at *least* K shares, you
have to add up P(recover exactly I shares) for all I from K to M.
That's it.
Regards,
Zooko
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
mnet-devel mailing list
mnet-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mnet-devel
More information about the Mnet-devel
mailing list