Source at: http://github.com/bsoule/Expectorant
Enter a probability (between 0 and 1) or an arithmetic expression that evaluates to a probability and press Expectorize. A subset of the numbers 1-20 will light up such that any given number will be lit up with the given probability.
Our favorite use for this: Say you owe me $7 for lunch but only have a twenty. If you give me the twenty with probability 7/20 then in expectation you’ve paid me $7! So type in 7/20 and tell me to pick a number from 1 to 20. Hit Expectorize — or have me do it so I know you didn’t cheat — and if my number is lit up then I lucked out and get the $20. (If you trust Expectorant to randomize properly (you can, we promise) then you can just always choose 1, or any number.)
Advanced feature: Entering something like 7@5,20 is a shortcut for (7-5)/(20-5). That’s the probability p such that (1-p)*5 + p*20 = 7. WTF? Here’s TF: If you have a five and a twenty and owe me $7, then give me the twenty with that probability and the five otherwise. Exquisitely fair (in expectation)!
Stochastic nerdtastic restaurant bill splitting: Say the subtotal is $100 and the items on the bill are $5, $25, $60, and $10. Enter 100:5 and have the person who ordered the $5 item pick a number from 1 to 20. If their number is lit up (a 5% chance) they get to pay the whole bill! If not, amend the expression as 100:5,25 and repeat for the person who got the $25 item. They’ll “win” with probability 25/(100-5). If they’re off the hook, amend again to 100:5,25,60. This time most likely — p = 60/(100-5-25) — the $60 person will win the honor of paying the bill. If not, notice that 100:5,25,60,10 yields 10/(100-5-25-60) = 1. So if the process makes it to the last item on the bill then whoever got that item is it. Mathemagically, it doesn’t matter what order you put the items in — each person “wins” (pays the whole bill) with probability equal to their own fair share of the bill. In other words, you pay in expectation exactly your fair share. Including tax and tip, even though we never entered those. Pretty slick! Speaking of tips, you can minimize the hassle by starting with the most expensive items. Then you don’t have to figure out who most of the items belong to. Oh, and if 3 people split the $10 pickled monkey balls just treat it as 3 items, $10/3 each (expressions instead of numbers are allowed).