home *** CD-ROM | disk | FTP | other *** search
/ Sunny 1,000 Collection / SUNNY1000.iso / Files / Dos / Boardak / INETPUZ.ZIP / PROBABIL.TXT < prev    next >
Text File  |  1995-02-05  |  51KB  |  1,313 lines

  1. Archive-name: puzzles/archive/probability
  2. Last-modified: 17 Aug 1993
  3. Version: 4
  4.  
  5.  
  6. ==> probability/amoeba.p <==
  7. A jar begins with one amoeba.  Every minute, every amoeba
  8. turns into 0, 1, 2, or 3 amoebae with probability 25%
  9. for each case ( dies, does nothing, splits into 2, or splits 
  10. into 3).  What is the probability that the amoeba population
  11. eventually dies out?
  12.  
  13. ==> probability/amoeba.s <==
  14. If p is the probability that a single amoeba's descendants will die
  15. out eventually, the probability that N amoebas' descendents will all
  16. die out eventually must be p^N, since each amoeba is independent of
  17. every other amoeba.  Also, the probability that a single amoeba's
  18. descendants will die out must be independent of time when averaged
  19. over all the possibilities.  At t=0, the probability is p, at t=1 the
  20. probability is 0.25(p^0+p^1+p^2+p^3), and these probabilities must be
  21. equal.  Extinction probability p is a root of f(p)=p.  In this case,
  22.  p = sqrt(2)-1.
  23.  
  24. The generating function for the sequence P(n,i), which gives the
  25. probability of i amoebas after n minutes, is f^n(x), where f^n(x) ==
  26. f^(n-1) ( f(x) ), f^0(x) == x .  That is, f^n is the nth composition
  27. of f with itself.
  28.  
  29. Then f^n(0) gives the probability of 0 amoebas after n minutes, since
  30. f^n(0) = P(n,0). We then note that:
  31.  
  32.         f^(n+1)(x) = ( 1 + f^n(x) + (f^n(x))^2 + (f^n(x))^3 )/4
  33.  
  34. so that if f^(n+1)(0) -> f^n(0) we can solve the equation.
  35.  
  36. The generating function also gives an expression for the expectation
  37. value of the number of amoebas after n minutes. This is d/dx(f^n(x))
  38. evaluated at x=1. Using the chain rule we get f'(f^(n-1)(x))*d/dx(f^(n-1)(x))
  39. and since f'(1) = 1.5  and f(1) = 1, we see that the result is just
  40. 1.5^n, as might be expected.
  41.  
  42. ==> probability/apriori.p <==
  43. An urn contains one hundred white and black balls.  You sample one hundred
  44. balls with replacement and they are all white.  What is the probability
  45. that all the balls are white?
  46.  
  47. ==> probability/apriori.s <==
  48. This question cannot be answered with the information given.
  49.  
  50. In general, the following formula gives the conditional probability
  51. that all the balls are white given you have sampled one hundred balls
  52. and they are all white:
  53.  
  54.         P(100 white | 100 white samples) =
  55.  
  56.                         P(100 white samples | 100 white) * P(100 white) 
  57.                 -----------------------------------------------------------
  58.                 sum(i=0 to 100) P(100 white samples | i white) * P(i white)
  59.  
  60. The probabilities P(i white) are needed to compute this formula.  This
  61. does not seem helpful, since one of these (P(100 white)) is just what we
  62. are trying to compute.  However, the following argument can be made:
  63. Before the experiment, all possible numbers of white balls from zero to
  64. one hundred are equally likely, so P(i white) = 1/101.  Therefore, the
  65. odds that all 100 balls are white given 100 white samples is:
  66.  
  67.         P(100 white | 100 white samples) =
  68.  
  69.                 1 / ( sum(i=0 to 100) (i/100)^100 ) =
  70.  
  71.                 63.6%
  72.  
  73. This argument is fallacious, however, since we cannot assume that the urn
  74. was prepared so that all possible numbers of white balls from zero to one
  75. hundred are equally likely.  In general, we need to know the P(i white)
  76. in order to calculate the P(100 white | 100 white samples).  Without this
  77. information, we cannot determine the answer.
  78.  
  79. This leads to a general "problem": our judgments about the relative
  80. likelihood of things is based on past experience.  Each experience allows
  81. us to adjust our likelihood judgment, based on prior probabilities.  This
  82. is called Bayesian inference.  However, if the prior probabilities are not
  83. known, then neither are the derived probabilities.  But how are the prior
  84. probabilities determined?  For example, if we are brains in the vat of a
  85. diabolical scientist, all of our prior experiences are illusions, and
  86. therefore all of our prior probabilities are wrong.
  87.  
  88. All of our probability judgments indeed depend upon the assumption that
  89. we are not brains in a vat.  If this assumption is wrong, all bets are
  90. off.
  91.  
  92. ==> probability/bayes.p <==
  93. One urn contains black marbles, and the other contains white or black
  94. marbles with even odds.  You pick a marble from an urn; it is black;
  95. you put it back; what are the odds that you will draw a black marble on
  96. the next draw?  What are the odds after n black draws?
  97.  
  98. ==> probability/bayes.s <==
  99. Every time you draw a black marble, you throw out (from your
  100. probability space) half of those possible urns that contain both
  101. colors.  So you have 1/2^n times as many ways to have a white marble in
  102. the urn after n draws, all black, as at the start.  But you have
  103. exactly the same number of ways to have both marbles black.  The
  104. numbers (mixed cases vs. all-black cases) go as 1:1, 1:2, 1:4, 1:8,...
  105. and the chance of having a white marble in the urn goes as 1/2, 1/3,
  106. 1/5, 1/9, ..., 1/(1+2^(n-1)), hence the odds of drawing a white marble
  107. on the nth try after n-1 consecutive drawings of black are
  108.  
  109. 1/4    the first time
  110. 1/6    the second time
  111. 1/10   the third time
  112. ...
  113. 1/(2+2^n)  the nth time
  114.  
  115. ==> probability/birthday/line.p <==
  116. At a movie theater, the manager announces that they will give a free ticket
  117. to the first person in line whose birthday is the same as someone who has
  118. already bought a ticket.  You have the option of getting in line at any
  119. time.  Assuming that you don't know anyone else's birthday, that birthdays
  120. are distributed randomly throughtout the year, etc., what position in line
  121. gives you the greatest chance of being the first duplicate birthday?
  122.  
  123. ==> probability/birthday/line.s <==
  124. Suppose you are the Kth person in line.  Then you win if and only if the
  125. K-1 people ahead all have distinct birtdays AND your birthday matches
  126. one of theirs.  Let 
  127.  
  128. A = event that your birthday matches one of the K-1 people ahead
  129. B = event that those K-1 people all have different birthdays
  130.  
  131. Then 
  132.  
  133. Prob(you win) = Prob(B) * Prob(A | B)
  134.  
  135. (Prob(A | B) is the conditional probability of A given that B occurred.)
  136.  
  137. Now let P(K) be the probability that the K-th person in line wins,
  138. Q(K) the probability that the first K people all have distinct
  139. birthdays (which occurs exactly when none of them wins).  Then
  140.  
  141. P(1) + P(2) + ... + P(K-1) + P(K) = 1 - Q(K)
  142. P(1) + P(2) + ... + P(K-1)        = 1 - Q(K-1)
  143.  
  144. P(K) = Q(K-1) - Q(K)   <--- this is what we want to maximize.
  145.  
  146. Now if the first K-1 all have distinct birthdays, then assuming
  147. uniform distribution of birthdays among D days of the year,
  148. the K-th person has K-1 chances out of D to match, and D-K+1 chances
  149. not to match (which would produce K distinct birthdays).  So 
  150.  
  151. Q(K) = Q(K-1)*(D-K+1)/D = Q(K-1) - Q(K-1)*(K-1)/D
  152. Q(K-1) - Q(K) = Q(K-1)*(K-1)/D = Q(K)*(K-1)/(D-K+1)
  153.  
  154. Now we want to maximize P(K), which means we need the greatest K such
  155. that P(K) - P(K-1) > 0.  (Actually, as just given, this only
  156. guarantees a local maximum, but in fact if we investigate a bit
  157. farther we'll find that P(K) has only one maximum.)
  158. For convenience in calculation let's set K = I + 1.  Then
  159.  
  160. Q(I-1) - Q(I) = Q(I)*(I-1)/(D-I+1)
  161. Q(I) - Q(I+1) = Q(I)*I/D
  162.  
  163. P(K) - P(K-1) = P(I+1) - P(I)
  164.               = (Q(I) - Q(I+1)) - (Q(K-2) - Q(K-1))
  165.               = Q(I)*(I/D - (I-1)/(D-I+1))
  166.  
  167. To find out where this is last positive (and next goes negative), solve
  168.  
  169. x/D - (x-1)/(D-x+1) = 0
  170.  
  171. Multiply by D*(D+1-x) both sides:
  172.  
  173. (D+1-x)*x - D*(x-1) = 0
  174. Dx + x - x^2 - Dx + D = 0
  175. x^2 - x - D = 0
  176.  
  177. x = (1 +/- sqrt(1 - 4*(-D)))/2    ... take the positive square root
  178.   = 0.5 + sqrt(D + 0.25)
  179.  
  180. Setting D=365 (finally deciding how many days in a year!),
  181.  
  182. desired I = x = 0.5 + sqrt(365.25) = 19.612 (approx).
  183.  
  184. The last integer I for which the new probability is greater then the old
  185. is therefore I=19, and so K = I+1 = 20.  You should try to be the 20th
  186. person in line.
  187.  
  188. Computing your chances of actually winning is slightly harder, unless
  189. you do it numerically by computer.  The recursions you need have already
  190. been given.
  191.  
  192. -- David Karr (karr@cs.cornell.edu)
  193.  
  194.  
  195.  
  196.  
  197. ==> probability/birthday/same.day.p <==
  198. How many people must be at a party before you have even odds or better
  199. of two having the same bithday (not necessarily the same year, of course)?
  200.  
  201. ==> probability/birthday/same.day.s <==
  202. 23.
  203.  
  204. See also:
  205.     archive entry "coupon"
  206.  
  207. ==> probability/cab.p <==
  208. A cab was involved in a hit and run accident at night.  Two cab companies,
  209. the Green and the Blue, operate in the city.  Here is some data:
  210.  
  211.         a)  Although the two companies are equal in size, 85% of cab 
  212. accidents in the city involve Green cabs and 15% involve Blue cabs.
  213.  
  214.         b)  A witness identified the cab in this particular accident as Blue.
  215. The court tested the reliability of the witness under the same circumstances
  216. that existed on the night of the accident and concluded that the witness 
  217. correctly identified each one of the two colors 80% of the time and failed
  218. 20% of the time.
  219.  
  220. What is the probability that the cab involved in the accident was 
  221. Blue rather than Green?
  222.  
  223. If it looks like an obvious problem in statistics, then consider the
  224. following argument:
  225.  
  226. The probability that the color of the cab was Blue is 80%!  After all,
  227. the witness is correct 80% of the time, and this time he said it was Blue!
  228.  
  229. What else need be considered?  Nothing, right?
  230.  
  231. If we look at Bayes theorem (pretty basic statistical theorem) we 
  232. should get a much lower probability.  But why should we consider statistical
  233. theorems when the problem appears so clear cut?  Should we just accept the 
  234. 80% figure as correct?
  235.  
  236. ==> probability/cab.s <==
  237. The police tests don't apply directly, because according to the
  238. wording, the witness, given any mix of cabs, would get the right
  239. answer 80% of the time.  Thus given a mix of 85% green and 15% blue
  240. cabs, he will say 20% of the green cabs and 80% of the blue cabs are
  241. blue.  That's 20% of 85% plus 80% of 15%, or 17%+12% = 29% of all the
  242. cabs that the witness will say are blue.  Of those, only 12/29 are
  243. actually blue.  Thus P(cab is blue | witness claims blue) = 12/29.
  244. That's just a little over 40%.
  245.  
  246. Think of it this way... suppose you had a robot watching parts on a
  247. conveyor belt to spot defective parts, and suppose the robot made a
  248. correct determination only 50% of the time (I know, you should
  249. probably get rid of the robot...).  If one out of a billion parts are
  250. defective, then to a very good approximation you'd expect half your
  251. parts to be rejected by the robot.  That's 500 million per billion.
  252. But you wouldn't expect more than one of those to be genuinely
  253. defective.  So given the mix of parts, a lot more than 50% of the
  254. REJECTED parts will be rejected by mistake (even though 50% of ALL the
  255. parts are correctly identified, and in particular, 50% of the
  256. defective parts are rejected).
  257.  
  258. When the biases get so enormous, things starts getting quite a bit
  259. more in line with intuition.
  260.  
  261. For a related real-life example of probability in the courtroom see
  262. People v. Collins, 68 Cal 2d319 (1968).
  263.  
  264. ==> probability/coupon.p <==
  265. There is a free gift in my breakfast cereal. The manufacturers say that
  266. the gift comes in four different colors, and encourage one to collect
  267. all four (& so eat lots of their cereal). Assuming there is an equal
  268. chance of getting any one of the colors,  what is the expected number
  269. of boxes I must consume to get all four?  Can you generalise to n
  270. colors and/or unequal probabilities?
  271.  
  272. ==> probability/coupon.s <==
  273. The problem is well known under the name of "COUPON COLLECTOR PROBLEM".
  274. The answer for n equally likely coupons is
  275. (1)             C(n)=n*H(n)    with H(n)=1+1/2+1/3+...+1/n.
  276. In the unequal probabilities case, with p_i the probability of coupon i,
  277. it becomes
  278. (2)             C(n)=int_0^infty [1-prod_{i=1}^n (1-exp(-p_i*t))] dt
  279. which reduces to (1) when p_i=1/n (An easy exercise).
  280. In the equal probabilities case  C(n)~n log(n). For a Zipf law,
  281. from (2), we have C(n)~n log^2(n).
  282.  
  283. A related problem is the "BIRTHDAY PARADOX" familiar to people
  284. interested in hashing algorithms: With a party of 23 persons,
  285. you are likely (i.e. with probability >50%) to find two with
  286. the same birthday. The non equiprobable case was solved by:
  287.         M. Klamkin and D. Newman, Extensions of the birthday
  288.         surprise, J. Comb. Th. 3 (1967), 279-282.
  289.  
  290. ==> probability/darts.p <==
  291. Peter throws two darts at a dartboard, aiming for the center.  The
  292. second dart lands farther from the center than the first.  If Peter now
  293. throws another dart at the board, aiming for the center, what is the
  294. probability that this third throw is also worse (i.e., farther from 
  295. the center) than his first?  Assume Peter's skilfulness is constant.
  296.  
  297. ==> probability/darts.s <==
  298. Since the three darts are thrown independently,
  299. they each have a 1/3 chance of being the best throw.  As long as the
  300. third dart is not the best throw, it will be worse than the first dart.
  301. Therefore the answer is 2/3.
  302.  
  303. Ranking the three darts' results from A (best) to C
  304. (worst), there are, a priori, six equiprobable outcomes.
  305.  
  306. possibility #   1       2       3       4       5       6
  307. 1st throw       A       A       B       B       C       C
  308. 2nd throw       B       C       A       C       A       B
  309. 3rd throw       C       B       C       A       B       A
  310.  
  311. The information from the first two throws shows us that the first
  312. throw will not be the worst, nor the second throw the best.  Thus
  313. possibilities 3, 5 and 6 are eliminated, leaving three equiprobable
  314. cases, 1, 2 and 4.  Of these, 1 and 2 have the third throw worse than
  315. the first; 4 does not.  Again the answer is 2/3.
  316.  
  317. ==> probability/derangement.p <==
  318. 12 men leave their hats with the hat check.  If the hats are randomly
  319. returned, what is the probability that nobody gets the correct hat?
  320.  
  321. ==> probability/derangement.s <==
  322. Suppose we are handing out hats to n people.  First we start with all
  323. the possible outcomes.  Then we subtract off those that assign the
  324. right hat to a given person, for each of the n people.  But this
  325. double-counts each outcome that assigned 2 hats correctly, so we have
  326. to add those outcomes back in.  But now we've counted one net copy of
  327. each outcome with 3 correct hats in our set, so we have to subtract
  328. those off again.  But now we've taken away each 4-correct-hat outcome
  329. once too often, and have to put it back in, and so forth ... until we
  330. add or subtract the outcome that involves all n people getting the
  331. correct hats.
  332.  
  333. Putting it all in probabilities, the measure of the original set is 1.
  334. For a given subset of k people, the probability that they all get
  335. their correct hats is (n-k)!/n!, while there are (n choose k) such
  336. subsets of k people altogether.  But then
  337.  
  338.    (n choose k)*(n-k)!/n! = (n!/((n-k)!*k!))*(n-k)!/n! = 1/k!
  339.  
  340. is the total probability measure we get by counting each subset of k
  341. people once each.  So we end up generating the finite series
  342.  
  343.    1 - 1/1! + 1/2! - 1/3! +- ... +/- 1/n!
  344.  
  345. which is of course just the first n+1 terms of the Taylor series
  346. expansion for f(x) = e^x centered at 0 and evaluated at -1, which
  347. converges to 1/e quite fast.  You can compute the exact probability for
  348. any n >= 1 simply by rounding n!/e to the nearest whole number, then
  349. dividing again by n!.  Moreover I think you will find you are always
  350. rounding down for odd n and rounding up for even n.
  351.  
  352. For example,
  353.  
  354.    12! / e = 176214840.95798...
  355.  
  356. which is within 0.05 (absolute error, not relative) of the correct
  357. intermediate result, 176214841.
  358.  
  359. Another fact is that if you set the probability of no matching hats
  360. equal to m/n!, then m is an integer divisible by (n-1).  That's
  361. because the number of ways you can give hat #2 to person #1 is exactly
  362. the same as the number of ways you can give that person hat #3,
  363. likewise for hat #4, and so forth.
  364.  
  365. -- David Karr (karr@cs.cornell.edu)
  366.  
  367. ==> probability/family.p <==
  368. Suppose that it is equally likely for a pregnancy to deliver
  369. a baby boy as it is to deliver a baby girl.  Suppose that for a
  370. large society of people, every family continues to have children
  371. until they have a boy, then they stop having children.
  372. After 1,000 generations of families, what is the ratio of males
  373. to females?
  374.  
  375. ==> probability/family.s <==
  376. The ratio will be 50-50 in both cases.  We are not killing off any
  377. fetuses or babies, and half of all conceptions will be male, half
  378. female.  When a family decides to stop does not affect this fact.
  379.  
  380. ==> probability/flips/once.in.run.p <==
  381. What are the odds that a run of one H or T (i.e., THT or HTH) will occur
  382. in n flips of a fair coin?
  383.  
  384. ==> probability/flips/once.in.run.s <==
  385. ~References:
  386.     John P. Robinson, Transition Count and Syndrome are Uncorrelated, IEEE
  387.     Transactions on Information Theory, Jan 1988.
  388.  
  389. First we define a function or enumerator P(n,k) as the number of length
  390. "n" sequences that generate "k" successes.  For example,
  391.  
  392.      P(4,1)= 4  (HHTH, HTHH, TTHT, and THTT are 4 possible length 4 sequences).
  393.  
  394. I derived two generating functions g(x) and h(x) in order to enumerate
  395. P(n,k), they are compactly represented by the following matrix
  396. polynomial.
  397.  
  398.  
  399.             _    _      _     _           _   _
  400.            | g(x) |    | 1   1 | (n-3)   |  4  |
  401.            |      | =  |       |         |     | 
  402.            | h(x) |    | 1   x |         |2+2x |    
  403.            |_    _|    |_     _|         |_   _|
  404.  
  405. The above is expressed as matrix generating function.  It can be shown
  406. that P(n,k) is the coefficient of the x^k in the polynomial
  407. (g(x)+h(x)).
  408.  
  409. For example, if n=4 we get (g(x)+h(x)) from the matrix generating
  410. function as (10+4x+2x^2).  Clearly, P(4,1) (coefficient of x) is 4 and
  411. P(4,2)=2 ( There are two such sequences THTH, and HTHT).
  412.  
  413. We can show that
  414.  
  415.    mean(k) = (n-2)/4 and sd= square_root(5n-12)/4
  416.  
  417. We need to generate "n" samples. This can be done by using sequences of length
  418. (n+2).  Then our new statistics would be
  419.  
  420.    mean = n/4
  421.  
  422.    sd = square_root(5n-2)/4
  423.  
  424. Similar approach can be followed for higher dimensional cases.
  425.  
  426. ==> probability/flips/twice.in.run.p <==
  427. What is the probability in n flips of a fair coin that there will be two
  428. heads in a row?
  429.  
  430. ==> probability/flips/twice.in.run.s <==
  431. Well, the question is then how many strings of n h's and t's contain
  432. hh?  I would guess right off hand that its going to be easier to
  433. calculate the number of strings that _don't_ contain hh and then
  434. subtract that from the total number of strings.
  435.  
  436. So we want to count the strings of n h's and t's with no hh in them.
  437. How many h's and t's can there be? It is fairly clear that there must
  438. be from 0 to n/2 h's, inclusive. (If there were (n/2+1) then there
  439. would have to be two touching.)
  440.  
  441. How many strings are there with 0 h's? 1
  442.  
  443. How many strings are there with 1 h? Well, there are (n-1) t's, so
  444. there are a total of n places to put the one h. So the are nC1 such
  445. strings.  How many strings are there with 2 h's? Well, there are (n-1)
  446. places to put the two h's, so there are (n-1)C2 such strings.
  447.  
  448. Finally, with n/2 h's there are (n/2+1) places to put them, so there
  449. are (n/2+1)C(n/2) such strings.
  450.  
  451. Therefore the total number of strings is
  452. Sum (from i=0 to n/2) of (n-i+1)C(i)
  453.  
  454. Now, here's where it get's interesting. If we play around with Pascal's
  455. triangle for a while, we see that this sum equals none other than the
  456. (n+2)th Fibonacci number.
  457.  
  458. So the probability that n coin tosses will give a hh is:
  459.  
  460. 2^n-f(n+2) 
  461. ----------
  462. 2^n
  463.  
  464. (where f(x) is the xth Fibanocci number (so that f(1) is and f(2) are both 1))
  465.  
  466. ==> probability/flips/unfair.p <==
  467. Generate even odds from an unfair coin.  For example, if you
  468. thought a coin was biased toward heads, how could you get the
  469. equivalent of a fair coin with several tosses of the unfair coin?
  470.  
  471. ==> probability/flips/unfair.s <==
  472. Toss twice.  If both tosses give the same result, repeat this process
  473. (throw out the two tosses and start again).  Otherwise, take the first
  474. of the two results.
  475.  
  476. ==> probability/flips/waiting.time.p <==
  477. Compute the expected waiting time for a sequence of coin flips, or the
  478. probabilty that one sequence of coin flips will occur before another.
  479.  
  480.  
  481. ==> probability/flips/waiting.time.s <==
  482. Here's a C program I had lying around that is relevant to the
  483. current discussion of coin-flipping.  The algorithm is N^3 (for N flips)
  484. but it could certainly be improved.  Compile with 
  485.  
  486.         cc -o flip flip.c -lm
  487.  
  488. -- Guy
  489.  
  490. _________________ Cut here ___________________
  491.  
  492. #include <stdio.h>
  493. #include <math.h>
  494.  
  495. char *progname;              /* Program name */
  496.  
  497. #define NOT(c) (('H' + 'T') - (c))
  498.  
  499.  
  500. /* flip.c -- a program to compute the expected waiting time for a sequence
  501.              of coin flips, or the probabilty that one sequence
  502.              of coin flips will occur before another.
  503.  
  504.     Guy Jacobson, 11/1/90
  505. */
  506.  
  507. main (ac, av) int ac; char **av;
  508. {
  509.     char *f1, *f2, *parseflips ();
  510.     double compute ();
  511.  
  512.     progname = av[0];
  513.  
  514.     if (ac == 2) {
  515.         f1 = parseflips (av[1]);
  516.         printf ("Expected number of flips until %s = %.1f\n",
  517.                 f1, compute (f1, NULL));
  518.     }
  519.     else if (ac == 3) {
  520.  
  521.         f1 = parseflips (av[1]);
  522.         f2 = parseflips (av[2]);
  523.  
  524.         if (strcmp (f1, f2) == 0) {
  525.             printf ("Can't use the same flip sequence.\n");
  526.             exit (1);
  527.         }
  528.         printf ("Probability of flipping %s before %s = %.1f%%\n",
  529.                 av[1], av[2], compute (f1, f2) * 100.0);
  530.     }
  531.     else
  532.       usage ();
  533. }
  534.  
  535. char *parseflips (s) char *s;
  536. {
  537.     char *f = s;
  538.  
  539.     while (*s)
  540.       if (*s == 'H' || *s == 'h')
  541.         *s++ = 'H';
  542.       else if (*s == 'T' || *s == 't')
  543.         *s++ = 'T';
  544.       else
  545.         usage ();
  546.  
  547.     return f;
  548. }
  549.  
  550. usage ()
  551. {
  552.     printf ("usage: %s {HT}^n\n", progname);
  553.     printf ("\tto get the expected waiting time, or\n");
  554.     printf ("usage: %s s1 s2\n\t(where s1, s2 in {HT}^n for some fixed n)\n",
  555.             progname);
  556.     printf ("\tto get the probability that s1 will occur before s2\n");
  557.     exit (1);
  558. }
  559.  
  560. /*
  561.   compute --  if f2 is non-null, compute the probability that flip
  562.               sequence f1 will occur before f2.  With null f2, compute
  563.               the expected waiting time until f1 is flipped
  564.  
  565.   technique:
  566.  
  567.     Build a DFA to recognize (H+T)*f1 [or (H+T)*(f1+f2) when f2
  568.     is non-null].  Randomly flipping coins is a Markov process on the
  569.     graph of this DFA.  We can solve for the probability that f1 precedes
  570.     f2 or the expected waiting time for f1 by setting up a linear system
  571.     of equations relating the values of these unknowns starting from each
  572.     state of the DFA.  Solve this linear system by Gaussian Elimination.
  573. */
  574.  
  575. typedef struct state {
  576.     char *s;                /* pointer to substring string matched */
  577.     int len;                /* length of substring matched */
  578.     int backup;             /* number of one of the two next states */
  579. } state;
  580.  
  581. double compute (f1, f2) char *f1, *f2;
  582. {
  583.     double solvex0 ();
  584.     int i, j, n1, n;
  585.  
  586.     state *dfa;
  587.     int nstates;
  588.  
  589.     char *malloc ();
  590.  
  591.     n = n1 = strlen (f1);
  592.     if (f2)
  593.         n += strlen (f2); /* n + 1 states in the DFA */
  594.  
  595.     dfa = (state *) malloc ((unsigned) ((n + 1) * sizeof (state)));
  596.  
  597.     if (!dfa) {
  598.         printf ("Ouch, out of memory!\n");
  599.         exit (1);
  600.     }
  601.  
  602.     /* set up the backbone of the DFA */
  603.  
  604.     for (i = 0; i <= n; i++) {
  605.         dfa[i].s = (i <= n1) ? f1 : f2;
  606.         dfa[i].len = (i <= n1) ? i : i - n1;
  607.     }
  608.  
  609.     /* for i not a final state, one next state of i is simply
  610.        i+1 (this corresponds to another matching character of dfs[i].s
  611.        The other next state (the backup state) is now computed.
  612.        It is the state whose substring matches the longest suffix
  613.        with the last character changed */      
  614.        
  615.     for (i = 0; i <= n; i++) {
  616.         dfa[i].backup = 0;
  617.         for (j = 1; j <= n; j++)
  618.           if ((dfa[j].len > dfa[dfa[i].backup].len)
  619.               && dfa[i].s[dfa[i].len] == NOT (dfa[j].s[dfa[j].len - 1])
  620.               && strncmp (dfa[j].s, dfa[i].s + dfa[i].len - dfa[j].len + 1,
  621.                           dfa[j].len - 1) == 0)
  622.             dfa[i].backup = j;
  623.     }
  624.  
  625.     /* our dfa has n + 1 states, so build a system n + 1 equations
  626.        in n + 1 unknowns */
  627.  
  628.     eqsystem (n + 1);
  629.  
  630.     for (i = 0; i < n; i++)
  631.       if (i == n1)
  632.         equation (1.0, n1, 0.0, 0, 0.0, 0, -1.0);
  633.       else
  634.         equation (1.0, i, -0.5, i + 1, -0.5, dfa[i].backup, f2 ? 0.0 : -1.0);
  635.     equation (1.0, n, 0.0, 0, 0.0, 0, 0.0);
  636.  
  637.     free (dfa);
  638.  
  639.     return solvex0 ();
  640. }
  641.  
  642.  
  643. /* a simple gaussian elimination equation solver */
  644.  
  645. double *m, **M;
  646. int rank;
  647. int neq = 0;
  648.  
  649. /* create an n by n system of linear equations.  allocate space
  650.    for the matrix m, filled with zeroes and the dope vector M */
  651.  
  652. eqsystem (n) int n;
  653. {
  654.     char *calloc ();
  655.     int i;
  656.  
  657.     m = (double *) calloc (n * (n + 1), sizeof (double));
  658.     M = (double **) calloc (n, sizeof (double *));
  659.  
  660.     if (!m || !M) {
  661.         printf ("Ouch, out of memory!\n");
  662.         exit (1);
  663.     }
  664.  
  665.     for (i = 0; i < n; i++)
  666.       M[i] = &m[i * (n + 1)];
  667.     rank = n;
  668.     neq = 0;
  669. }
  670.  
  671. /* add a new equation a * x_na + b * x_nb + c * x_nc + d = 0.0
  672.    (note that na, nb, and nc are not necessarily all distinct.) */
  673.  
  674. equation (a, na, b, nb, c, nc, d) double a, b, c, d; int na, nb, nc;
  675. {
  676.     double *eq = M[neq++]; /* each row is an equation */
  677.     eq[na + 1] += a;
  678.     eq[nb + 1] += b;
  679.     eq[nc + 1] += c;
  680.     eq[0] = d;             /* column zero holds the constant term */
  681. }
  682.  
  683. /* solve for the value of variable x_0.  This will go nuts if
  684.    therer are errors (for example, if m is singular) */
  685.  
  686. double solvex0 ()
  687. {
  688.     register i, j, jmax, k;
  689.     register double  max, val;
  690.     register double *maxrow, *row;
  691.  
  692.  
  693.     for (i = rank; i > 0; --i) {      /* for each variable */
  694.  
  695.         /* find pivot element--largest value in ith column*/
  696.         max = 0.0;
  697.         for (j = 0; j < i; j++)
  698.             if (fabs (M[j][i]) > fabs (max)) {
  699.                 max = M[j][i];
  700.                 jmax = j;
  701.             }
  702.         /* swap pivot row with last row using dope vectors */
  703.         maxrow = M[jmax];
  704.         M[jmax] = M[i - 1];
  705.         M[i - 1] = maxrow;
  706.  
  707.         /* normalize pivot row */
  708.         max = 1.0 / max;
  709.         for (k = 0; k <= i; k++)
  710.           maxrow[k] *= max;
  711.  
  712.         /* now eliminate variable i by subtracting multiples of pivot row */
  713.         for (j = 0; j < i - 1; j++) {
  714.             row = M[j];
  715.             if (val = row[i])              /* if variable i is in this eq */
  716.                 for (k = 0; k <= i; k++)
  717.                   row[k] -= maxrow[k] * val;
  718.         }
  719.     }
  720.  
  721.     /* the value of x0 is now in constant column of first row
  722.        we only need x0, so no need to back-substitute */
  723.  
  724.     val = -M[0][0];
  725.  
  726.     free (M);
  727.     free (m);
  728.  
  729.     return val;
  730. }
  731.  
  732. _________________________________________________________________
  733. Guy Jacobson   (201) 582-6558              AT&T Bell Laboratories
  734.         uucp:  {att,ucbvax}!ulysses!guy    600 Mountain Avenue
  735.     internet:  guy@ulysses.att.com         Murray Hill NJ, 07974
  736.  
  737.  
  738.  
  739. ==> probability/flush.p <==
  740. Which set contains proportionately more flushes than the set of all
  741. possible poker hands?
  742. (1) Hands whose first card is an ace
  743. (2) Hands whose first card is the ace of spades
  744. (3) Hands with at least one ace
  745. (4) Hands with the ace of spades
  746.  
  747. ==> probability/flush.s <==
  748. An arbitrary hand can have two aces but a flush hand can't.  The
  749. average number of aces that appear in flush hands is the same as the
  750. average number of aces in arbitrary hands, but the aces are spread out
  751. more evenly for the flush hands, so set #3 contains a higher fraction
  752. of flushes.
  753.  
  754. Aces of spades, on the other hand, are spread out the same way over
  755. possible hands as they are over flush hands, since there is only one of
  756. them in the deck.  Whether or not a hand is flush is based solely on a
  757. comparison between different cards in the hand, so looking at just one
  758. card is necessarily uninformative.  So the other sets contain the same
  759. fraction of flushes as the set of all possible hands.
  760.  
  761. ==> probability/hospital.p <==
  762. A town has two hospitals, one big and one small.  Every day the big
  763. hospital delivers 1000 babies and the small hospital delivers 100
  764. babies.  There's a 50/50 chance of male or female on each birth.
  765. Which hospital has a better chance of having the same number of boys
  766. as girls?
  767.  
  768. ==> probability/hospital.s <==
  769. The small one.  If there are 2N babies born, then the probability of an
  770. even split is
  771.  
  772. (2N choose N) / (2 ** 2N) ,
  773.  
  774. where (2N choose N) = (2N)! / (N! * N!) .
  775.  
  776. This is a DECREASING function.
  777.  
  778. If there are two babies born, then the probability of a split is 1/2
  779. (just have the second baby be different from the first).  With 2N
  780. babies, If there is a N,N-1 split in the first 2N-1, then there is a
  781. 1/2 chance of the last baby making it an even split.  Otherwise there
  782. can be no even split.  Therefore the probability is less than 1/2
  783. overall for an even split.
  784.  
  785. As N goes to infinity the probability of an even split approaches zero
  786. (although it is still the most likely event).
  787.  
  788. ==> probability/icos.p <==
  789. The "house" rolls two 20-sided dice and the "player" rolls one
  790. 20-sided die.  If the player rolls a number on his die between the
  791. two numbers the house rolled, then the player wins.  Otherwise, the
  792. house wins (including ties).  What are the probabilities of the player
  793. winning?
  794.  
  795. ==> probability/icos.s <==
  796. It is easily seen that if any two of the three dice agree that the
  797. house wins.  The probability that this does not happen is 19*18/(20*20).
  798. If the three numbers are different, the probability of winning is 1/3.
  799. So the chance of winning is 19*18/(20*20*3) = 3*19/200 = 57/200.
  800.  
  801. ==> probability/intervals.p <==
  802. Given two random points x and y on the interval 0..1, what is the average
  803. size of the smallest of the three resulting intervals?
  804.  
  805. ==> probability/intervals.s <==
  806. In between these positions the surface forms a series of planes.
  807. Thus the volume under it consists of 2 pyramids each with an
  808. altitude of 1/3 and an (isosceles triangular) base of area 1/2,
  809. yielding a total volume of 1/9.
  810.  
  811. ==> probability/killers.and.pacifists.p <==
  812. You enter a town that has K killers and P pacifists.  When a
  813. pacifist meets a pacifist, nothing happens.  When a pacifist meets a
  814. killer, the pacifist is killed.  When two killers meet, both die.
  815. Assume meetings always occur between exactly two persons and the pairs
  816. involved are completely random.  What are your odds of survival?
  817.  
  818. ==> probability/killers.and.pacifists.s <==
  819. Regardless of whether you are a pacifist or a killer, you may disregard
  820. all events in which a pacifist other than yourself is involved and
  821. consider only events in which you are killed or a pair of killers other
  822. than yourself is killed.
  823.  
  824. Thus we may assume that there are N killers and yourself.  If N is odd,
  825. your odds of surviving are zero.  If N is even, it doesn't matter to
  826. you whether you are a killer or not.  So WLOG assume you are.  Then your
  827. probability of survival is 1/(N+1).
  828.  
  829. ==> probability/leading.digit.p <==
  830. What is the probability that the ratio of two random reals starts with a 1?
  831. What about 9?
  832.  
  833. ==> probability/leading.digit.s <==
  834. What is the distribution of y/x for (x,y) chosen with uniform distribution
  835. from the unit square?
  836.  
  837. First you want y/x in one of the intervals ... [0.01,0.02), [0.1,0.2),
  838. [1,2), [10/20), ... .  This corresponds to (x,y) lying in one of
  839. several triangles with height 1 and bases on either the right or top
  840. edges of the square.  The bases along the right edge have lengths 0.1
  841. (for 0.1 <= y/x < 0.2), 0.01, 0.001, ... ; the sum of this series is
  842. 1/9.  The bases along the top edge have lengths 0.5 (for 0.5 < x/y <=
  843. 1), 0.05, 0.005, ... ; the sum of this series is 5/9.  So you have a
  844. total base length of 6/9 = 2/3, height 1, so the area is 1/3.  The
  845. total area of the square is 1/3, so the probability that y/x starts
  846. with a 1 is 1/3 ~= 0.333333.
  847.  
  848. In the second case you have the same lengths (but in different places)
  849. on the right edge, total 1/9.  But on the top edge, 9 <= y/x < 10 gives
  850. you 1/10 < x/y <= 1/9 gives you a base of length 1/9 - 1/10 = 1/90,
  851. and the series proceeds 1/900, 1/9000, ... ; the sum is 1/81.  Total
  852. base length then is 9/81 + 1/81 = 10/81, height 1, total area (and
  853. hence probability of a leading 9) is 5/81 ~= 0.061728.
  854.  
  855.  
  856. ==> probability/lights.p <==
  857. Waldo and Basil are exactly m blocks west and n blocks north from
  858. Central Park, and always go with the green light until they run out of
  859. options.  Assuming that the probability of the light being green is 1/2
  860. in each direction, that if the light is green in one direction it is
  861. red in the other, and that the lights are not synchronized, find the
  862. expected number of red lights that Waldo and Basil will encounter.
  863.  
  864. ==> probability/lights.s <==
  865. Let E(m,n) be this number, and let (x)C(y) = x!/(y! (x-y)!).  A model
  866. for this problem is the following nxm grid:
  867.  
  868.      ^         B---+---+---+ ... +---+---+---+ (m,0)
  869.      |         |   |   |   |     |   |   |   |
  870.      N         +---+---+---+ ... +---+---+---+ (m,1)
  871. <--W + E-->    :   :   :   :     :   :   :   :
  872.      S         +---+---+---+ ... +---+---+---+ (m,n-1)
  873.      |         |   |   |   |     |   |   |   |
  874.      v         +---+---+---+ ... +---+---+---E (m,n)
  875.  
  876. where each + represents a traffic light.  We can consider each
  877. traffic light to be a direction pointer, with an equal chance of
  878. pointing either east or south.
  879.  
  880. IMHO, the best way to approach this problem is to ask:  what is the
  881. probability that edge-light (x,y) will be the first red edge-light
  882. that the pedestrian encounters?  This is easy to answer; since the
  883. only way to reach (x,y) is by going south x times and east y times,
  884. in any order, we see that there are (x+y)C(x) possible paths from
  885. (0,0) to (x,y).  Since each of these has probability (1/2)^(x+y+1)
  886. of occuring, we see that the the probability we are looking for is
  887. (1/2)^(x+y+1)*(x+y)C(x).  Multiplying this by the expected number
  888. of red lights that will be encountered from that point, (n-k+1)/2,
  889. we see that
  890.  
  891.             m-1
  892.            -----
  893.            \
  894. E(m,n) =    >    ( 1/2 )^(n+k+1) * (n+k)C(n) * (m-k+1)/2
  895.            /
  896.            -----
  897.             k=0
  898.  
  899.             n-1
  900.            -----
  901.            \
  902.       +     >    ( 1/2 )^(m+k+1) * (m+k)C(m) * (n-k+1)/2 .
  903.            /
  904.            -----
  905.             k=0
  906.  
  907.  
  908. Are we done?  No!  Putting on our Captain Clever Cap, we define
  909.  
  910.             n-1
  911.            -----
  912.            \
  913. f(m,n) =    >    ( 1/2 )^k * (m+k)C(m) * k 
  914.            /
  915.            -----
  916.             k=0
  917.  
  918. and
  919.  
  920.             n-1
  921.            -----
  922.            \
  923. g(m,n) =    >    ( 1/2 )^k * (m+k)C(m) .
  924.            /
  925.            -----
  926.             k=0
  927.  
  928. Now, we know that
  929.  
  930.              n
  931.            -----
  932.            \
  933. f(m,n)/2 =  >    ( 1/2 )^k * (m+k-1)C(m) * (k-1) 
  934.            /
  935.            -----
  936.             k=1
  937.  
  938. and since f(m,n)/2 = f(m,n) - f(m,n)/2, we get that
  939.  
  940.             n-1
  941.            -----
  942.            \
  943. f(m,n)/2 =  >    ( 1/2 )^k * ( (m+k)C(m) * k - (m+k-1)C(m) * (k-1) )
  944.            /
  945.            -----
  946.             k=1
  947.  
  948. - (1/2)^n * (m+n-1)C(m) * (n-1)
  949.  
  950.             n-2
  951.            -----
  952.            \
  953.  =          >    ( 1/2 )^(k+1) * (m+k)C(m) * (m+1)
  954.            /
  955.            -----
  956.             k=0
  957.  
  958. - (1/2)^n * (m+n-1)C(m) * (n-1)
  959.  
  960. = (m+1)/2 * (g(m,n) - (1/2)^(n-1)*(m+n-1)C(m)) - (1/2)^n*(m+n-1)C(m)*(n-1)
  961.  
  962. therefore
  963.  
  964. f(m,n) = (m+1) * g(m,n) - (n+m) * (1/2)^(n-1) * (m+n-1)C(m) .
  965.  
  966.  
  967. Now, E(m,n) = (n+1) * (1/2)^(m+2) * g(m,n) - (1/2)^(m+2) * f(m,n)
  968.  
  969. + (m+1) * (1/2)^(n+2) * g(n,m) - (1/2)^(n+2) * f(n,m)
  970.  
  971. = (m+n) * (1/2)^(n+m+1) * (m+n)C(m) + (m-n) * (1/2)^(n+2) * g(n,m)
  972.  
  973. + (n-m) * (1/2)^(m+2) * g(m,n) .
  974.  
  975.  
  976. Setting m=n in this formula, we see that
  977.  
  978.            E(n,n) = n * (1/2)^(2n) * (2n)C(n),
  979.  
  980. and applying Stirling's theorem we get the beautiful asymptotic formula
  981.  
  982.                   E(n,n) ~ sqrt(n/pi).
  983.  
  984. ==> probability/lottery.p <==
  985. There n tickets in the lottery, k winners and m allowing you to pick another
  986. ticket. The problem is to determine the probability of winning the lottery
  987. when you start by picking 1 (one) ticket.
  988.  
  989. A lottery has N balls in all, and you as a player can choose m numbers
  990. on each card, and the lottery authorities then choose n balls, define
  991. L(N,n,m,k) as the minimum number of cards you must purchase to ensure that
  992. at least one of your cards will have at least k numbers in common with the
  993. balls chosen in the lottery.
  994.  
  995. ==> probability/lottery.s <==
  996. This relates to the problem of rolling a random number
  997. from 1 to 17 given a 20 sided die.  You simply mark the numbers 18,
  998. 19, and 20 as "roll again".
  999.  
  1000. The probability of winning is, of course, k/(n-m) as for every k cases
  1001. in which you get x "draw again"'s before winning, you get n-m-k similar
  1002. cases where you get x "draw again"'s before losing.  The example using
  1003. dice makes it obvious, however.
  1004.  
  1005. L(N,k,n,k) >= Ceiling((N-choose-k)/(n-choose-k)*
  1006.                    (n-1-choose-k-1)/(N-1-choose-k-1)*L(N-1,k-1,n-1,k-1))
  1007.             = Ceiling(N/n*L(N-1,k-1,n-1,k-1))
  1008.  
  1009. The correct way to see this is as follows:  Suppose you have an
  1010. (N,k,n,k) system of cards.  Look at all of the cards that contain the
  1011. number 1.  They cover all ball sets that contain 1, and therefore these
  1012. cards become an (N-1,k-1,n-1,k-1) covering upon deletion of the number
  1013. 1.  Therefore the number 1 must appear at least L(N-1,k-1,n-1,k-1).
  1014. The same is true of all of the other numbers.  There are N of them but
  1015. n appear on each card.  Thus we obtain the bound.
  1016.  
  1017. ==> probability/oldest.girl.p <==
  1018. You meet a stranger on the street, and ask how many children he has.  He
  1019. truthfully says two.  You ask "Is the older one a girl?"  He truthfully
  1020. says yes.  What is the probability that both children are girls?  What
  1021. would the probability be if your second question had been "Is at least
  1022. one of them a girl?", with the other conditions unchanged?
  1023.  
  1024. ==> probability/oldest.girl.s <==
  1025. There are four possibilities:
  1026.  
  1027.     Oldest child    Youngest child
  1028. 1.  Girl            Girl
  1029. 2.  Girl            Boy
  1030. 3.  Boy             Girl
  1031. 4.  Boy             Boy
  1032.  
  1033. If your friend says "My oldest child is a girl," he has eliminated cases
  1034. 3 and 4, and in the remaining cases both are girls 1/2 of the time.  If
  1035. your friend says "At least one of my children is a girl," he has
  1036. eliminated case 4 only, and in the remaining cases both are girls 1/3
  1037. of the time.
  1038.  
  1039.  
  1040. ==> probability/particle.in.box.p <==
  1041. A particle is bouncing randomly in a two-dimensional box.  How far does it
  1042. travel between bounces, on average?
  1043.  
  1044. Suppose the particle is initially at some random position in the box and is
  1045. traveling in a straight line in a random direction and rebounds normally
  1046. at the edges.
  1047.  
  1048. ==> probability/particle.in.box.s <==
  1049. Let theta be the angle of the point's initial vector.  After traveling a
  1050. distance r, the point has moved r*cos(theta) horizontally and r*sin(theta)
  1051. vertically, and thus has struck r*(sin(theta)+cos(theta))+O(1) walls.  Hence
  1052. the average distance between walls will be 1/(sin(theta)+cos(theta)).  We now
  1053. average this over all angles theta:
  1054.         2/pi * intg from theta=0 to pi/2 (1/(sin(theta)+cos(theta))) dtheta
  1055. which (in a computation which is left as an exercise) reduces to
  1056.         2*sqrt(2)*ln(1+sqrt(2))/pi = 0.793515.
  1057.  
  1058. ==> probability/pi.p <==
  1059. Are the digits of pi random (i.e., can you make money betting on them)?
  1060.  
  1061. ==> probability/pi.s <==
  1062. No, the digits of pi are not truly random, therefore you can win money
  1063. playing against a supercomputer that can calculate the digits of pi far
  1064. beyond what we are currently capable of doing.  This computer selects a
  1065. position in the decimal expansion of pi -- say, at 10^100.  Your job is
  1066. to guess what the next digit or digit sequence is.  Specifically, you
  1067. have one dollar to bet.  A bet on the next digit, if correct, returns
  1068. 10 times the amount bet; a bet on the next two digits returns 100 times
  1069. the amount bet, and so on.  (The dollar may be divided in any fashion,
  1070. so we could bet 1/3 or 1/10000 of a dollar.)  You may place bets in any
  1071. combination.  The computer will tell you the position number, let you
  1072. examine the digits up to that point, and calculate statistics for you.
  1073.  
  1074. It is easy to set up strategies that might win, if the supercomputer
  1075. doesn't know your strategy.  For example, "Always bet on 7" might win,
  1076. if you are lucky.  Also, it is easy to set up bets that will always
  1077. return a dollar.  For example, if you bet a penny on every two-digit
  1078. sequence, you are sure to win back your dollar.  Also, there are
  1079. strategies that might be winning, but we can't prove it.  For example,
  1080. it may be that a certain sequence of digits never occurs in pi, but we
  1081. have no way of proving this.
  1082.  
  1083. The problem is to find a strategy that you can prove will always win
  1084. back more than a dollar.
  1085.  
  1086. The assumption that the position is beyond the reach of calculation
  1087. means that we must rely on general facts we know about the sequence of
  1088. digits of pi, which is practically nil.  But it is not completely nil,
  1089. and the challenge is to find a strategy that will always win money.
  1090.  
  1091. A theorem of Mahler (1953) states that for all integers p, q > 1,
  1092.  
  1093.                 -42
  1094.   |pi - p/q| > q
  1095.  
  1096. This says that pi cannot have a rational approximation that is
  1097. extremely tight.
  1098.  
  1099. Now suppose that the computer picks position N.  I know that the next
  1100. 41 * N digits cannot be all zero.   For if they were, then the first N
  1101. digits, treated as a fraction with denominator 10^N, satisfies:
  1102.  
  1103.   |pi - p / 10^N|  <  10^(-42 N)
  1104.  
  1105. which contradicts Mahler's theorem.
  1106.  
  1107. So, I split my dollar into 10^(41N) - 1 equal parts, and bet on each of
  1108. the sequences of 41N digits, except the one with all zeroes.  One of
  1109. the bets is sure to win, so my total profit is about 10(^-41N) of a
  1110. dollar!
  1111.  
  1112. This strategy can be improved a number of ways, such as looking for
  1113. other repeating patterns, or improvements to the bound of 42 -- but the
  1114. earnings are so pathetic, it hardly seems worth the effort.
  1115.  
  1116. Are there other winning strategies, not based on Mahler's theorem?  I
  1117. believe there are algorithms that generate 2N binary digits of pi,
  1118. where the computations are separate for each block of N digits.  Maybe
  1119. from something like this, we can find a simple subsequence of the
  1120. binary digits of pi which is always zero, or which has some simple
  1121. pattern.
  1122.  
  1123. ==> probability/random.walk.p <==
  1124. Waldo has lost his car keys!  He's not using a very efficient search;
  1125. in fact, he's doing a random walk.  He starts at 0, and moves 1 unit
  1126. to the left or right, with equal probability.  On the next step, he
  1127. moves 2 units to the left or right, again with equal probability.  For
  1128. subsequent turns he follows the pattern 1, 2, 1, etc.
  1129.  
  1130. His keys, in truth, were right under his nose at point 0.  Assuming
  1131. that he'll spot them the next time he sees them, what is the
  1132. probability that poor Waldo will eventually return to 0?
  1133.  
  1134. ==> probability/random.walk.s <==
  1135. I can show the probability that Waldo returns to 0 is 1.  Waldo's
  1136. wanderings map to an integer grid in the plane as follows.  Let
  1137. (X_t,Y_t) be the cumulative sums of the length 1 and length 2 steps
  1138. respectively taken by Waldo through time t.  By looking only at even t,
  1139. we get the ordinary random walk in the plane, which returns to the
  1140. origin (0,0) with probability 1.  In fact, landing at (2n, n) for any n
  1141. will land Waldo on top of his keys too.  There's no need to look at odd
  1142. t.
  1143.  
  1144. Similar considerations apply for step sizes of arbitrary (fixed) size.
  1145.  
  1146. ==> probability/reactor.p <==
  1147. There is a reactor in which a reaction is to take place. This reaction
  1148. stops if an electron is present in the reactor. The reaction is started
  1149. with 18 positrons; the idea being that one of these positrons would
  1150. combine with any incoming electron (thus destroying both). Every second,
  1151. exactly one particle enters the reactor. The probablity that this particle   
  1152. is an electron is 0.49 and that it is a positron is 0.51.
  1153.  
  1154. What is the probability that the reaction would go on for ever?
  1155.  
  1156. Note: Once the reaction stops, it cannot restart.
  1157.  
  1158. ==> probability/reactor.s <==
  1159. Let P(n) be the probability that, starting with n positrons, the
  1160. reaction goes on forever.  Clearly P'(n+1)=P'(0)*P'(n), where the
  1161. ' indicates probabilistic complementation; also note that
  1162. P'(n) = .51*P'(n+1) + .49*P'(n-1).  Hence we have that P(1)=(P'(0))^2
  1163. and that P'(0) = .51*P'(1) ==> P'(0) equals 1 or 49/51.  We thus get
  1164. that either P'(18) = 1 or (49/51)^19 ==> P(18) = 0 or 1 - (49/51)^19.
  1165.  
  1166. The answer is indeed the latter.  A standard result in random walks
  1167. (which can be easily derived using Markov chains) yields that if p>1/2
  1168. then the probability of reaching the absorbing state at +infinity
  1169. as opposed to the absorbing state at -1 is 1-r^(-i), where r=p/(1-p)
  1170. (p is the probability of moving from state n to state n-1, in our
  1171. case .49) and i equals the starting location + 1.  Therefore we have
  1172. that P(18) = 1-(.49/.51)^19.
  1173.  
  1174. ==> probability/roulette.p <==
  1175. You are in a game of Russian roulette, but this time the gun (a 6
  1176. shooter revolver) has three bullets _in_a_row_ in three of the
  1177. chambers.  The barrel is spun only once.  Each player then points the
  1178. gun at his (her) head and pulls the trigger.  If he (she) is still
  1179. alive, the gun is passed to the other player who then points it at his
  1180. (her) own head and pulls the trigger.  The game stops when one player
  1181. dies.
  1182.  
  1183. Now to the point:  would you rather be first or second to shoot?
  1184.  
  1185. ==> probability/roulette.s <==
  1186. All you need to consider are the six possible bullet configurations
  1187.  
  1188.     B B B E E E         -> player 1 dies
  1189.     E B B B E E         -> player 2 dies
  1190.     E E B B B E         -> player 1 dies
  1191.     E E E B B B         -> player 2 dies
  1192.     B E E E B B         -> player 1 dies
  1193.     B B E E E B         -> player 1 dies
  1194.  
  1195. One therefore has a 2/3 probability of winning (and a 1/3 probability of
  1196. dying) by shooting second.  I for one would prefer this option.
  1197.  
  1198. ==> probability/transitivity.p <==
  1199. Can you number dice so that die A beats die B beats die C beats die A?
  1200. What is the largest probability p with which each event can occur?
  1201.  
  1202. ==> probability/transitivity.s <==
  1203. Yes.  The actual values on the dice faces don't matter, only their
  1204. ordering.  WLOG we may assume that no two faces of the same or
  1205. different dice are equal.  We can assume "generalised dice", where the
  1206. faces need not be equally probable.  These can be approximated by dice
  1207. with equi-probable faces by having enough faces and marking some of
  1208. them the same.
  1209.  
  1210. Take the case of three dice, called A, B, and C.  Picture the different
  1211. values on the faces of the A die.  Suppose there are three:
  1212.  
  1213.             A       A       A
  1214.  
  1215. The values on the B die must lie in between those of the A die:
  1216.  
  1217.         B   A   B   A   B   A   B
  1218.  
  1219. With three different A values, we need only four different B values.
  1220.  
  1221. Similarly, the C values must lie in between these:
  1222.  
  1223.       C B C A C B C A C B C A C B C
  1224.       
  1225. Assume we want A to beat B, B to beat C, and C to beat A.  Then the above
  1226. scheme for the ordering of values can be simplified to:
  1227.  
  1228.       B C A B C A B C A B C
  1229.  
  1230. since for example, the first C in the previous arrangement can be moved
  1231. to the second with the effect that the probability that B beats C is
  1232. increased, and the probabilities that C beats A or A beats B are
  1233. unchanged.  Similarly for the other omitted faces.
  1234.  
  1235. In general we obtain for n dice A...Z the arrangement
  1236.  
  1237.     B ... Z A B ... Z ...... A B ... Z
  1238.  
  1239. where there are k complete cycles of B..ZA followed by B...Z.  k must be
  1240. at least 1.
  1241.  
  1242. CONJECTURE:  The optimum can be obtained for k=1.
  1243.  
  1244. So the arrangement of face values is B ... Z A B ... Z.  For three dice
  1245. it is BCABC.  Thus one die has just one face, all the other dice have two
  1246. (with in general different probabilities).
  1247.  
  1248. CONJECTURE:  At the optimum, the probabilities that each die beats the
  1249. next can be equal.
  1250.  
  1251. Now put probabilities into the BCABC arrangement:
  1252.  
  1253.     B  C  A  B  C
  1254.     x  y  1  x' y'
  1255.  
  1256. Clearly x+x' = y+y' = 1.
  1257.  
  1258. Prob. that A beats B = x'
  1259.            B beats C = x + x'y'
  1260.            C beats A = y
  1261.  
  1262. Therefore x' = y = x + x'y'
  1263.  
  1264. Solving for these gives x = y' = 1-y, x' = y = (-1 + sqrt(5))/2 = prob.
  1265. of each die beating the next = 0.618...
  1266.  
  1267. For four dice one obtains the probabilities:
  1268.  
  1269.     B  C  D  A  B  C  D
  1270.     x  y  z  1  x' y' z'
  1271.  
  1272. A beats B:  x'
  1273. B beats C:  x + x'y'
  1274. C beats D:  y + y'z'
  1275. D beats A:  z
  1276.  
  1277. CONJECTURE: for any number of dice, at the optimum, the sequence of
  1278. probabilities abc...z1a'b'c...z' is palindromic.
  1279.  
  1280. We thus have the equalities:
  1281.  
  1282.     x+x' = 1
  1283.     y+y' = 1
  1284.     z+z' = 1
  1285.     x' = z = x + x'y' = x + x'y'
  1286.     y = y' (hence both = 1/2)
  1287.  
  1288. Solving this gives x = 1/3, z = 2/3 = prob. of each die beating the next.
  1289.  Since all the numbers are rational, the limit is attainable with
  1290. finitely many equiprobable faces.  E.g. A has one face, marked 0.  C has
  1291. two faces, marked 2 and -2.  B has three faces, marked 3, -1, -1.  D has
  1292. three faces, marked 1, 1, -3.  Or all four dice can be given six faces,
  1293. marked with numbers in the range 0 to 6.
  1294.  
  1295. Finding the solution for 5, 6, or n dice is left as an exercise.
  1296.  
  1297. --                                  ____
  1298. Richard Kennaway                  __\_ /    School of Information Systems
  1299. Internet:  jrk@sys.uea.ac.uk      \  X/     University of East Anglia
  1300. uucp:  ...mcsun!ukc!uea-sys!jrk    \/       Norwich NR4 7TJ, U.K.
  1301.  
  1302.  
  1303. Martin Gardner (of course!) wrote about notransitive dice, see the Oct '74
  1304. issue of Scientific American, or his book "Wheels, Life and Other Mathematical
  1305. Amusements", ISBN 0-7167-1588-0 or ISBN 0-7167-1589-9 (paperback).
  1306.  
  1307. In the book, Gardner cites Bradley Efron of Stanford U. as stating that
  1308. the maximum number for three dice is approx .618, requiring dice with more
  1309. than six sides.  He also mentions that .75 is the limit approached as the
  1310. number of dice increases.  The book shows three sets of 6-sided dice, where
  1311. each set has 2/3 as the advantage probability.
  1312.  
  1313.