/[gzz]/manuscripts/Sigs/birthday.py
ViewVC logotype

Diff of /manuscripts/Sigs/birthday.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by tjl, Mon May 19 19:58:25 2003 UTC revision 1.5 by tjl, Mon May 19 20:24:03 2003 UTC
# Line 1  Line 1 
1  from math import *  from math import *
2    import java
3    
4  def log2birthdayprob(n, k):  def log2birthdayprob(n, k):
5      """return log2(p(k balls thrown to n bins, all end up alone))      """return log2(p(k balls thrown to n bins, all end up alone))
6      """      """
7        print n, n-k, log(n), log(n-k),  log(n)-log(n-k)
8        n = java.math.BigDecimal(n)
9        k = java.math.BigDecimal(k)
10      return (      return (
11              (n-k+.5) * (log(n) - log(n-k))              (n-k+.5) * (log(n) - log(n-k))
12              - k              - k
# Line 14  print log2birthdayprob(41, 11) Line 18  print log2birthdayprob(41, 11)
18  print log2birthdayprob(41, 2)  print log2birthdayprob(41, 2)
19  print log2birthdayprob(2L**56, 2L**23)  print log2birthdayprob(2L**56, 2L**23)
20    
21  for k in [20, 23]:  for n in [1, 2, 3, 4, 56]:
22      for n in [56, 60]:      for k in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]:
23            if n <= k: continue
24          print n,k,log2birthdayprob(2L**n,2L**k)          print n,k,log2birthdayprob(2L**n,2L**k)
25    

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26