[Tutor] Birthday paradox (was: Re: Random number generator (was: Can anyone help me?))

Danny Yoo dyoo at hkn.eecs.berkeley.edu
Sun Oct 30 00:21:30 CEST 2005


> ######
> >>> count_duplicates = 0
> >>> for i in range(10):
> ...     if has_duplication(make_roll(50, 6)):
> ...         count_duplicates = count_duplicates + 1
> ...
> >>> count_duplicates
> 1
> >>> 1.0 / 10
> 0.10000000000000001
> ######
>
>
> Experimentally, we're seeing 1%, but that might just be a fluke.  Or maybe
> it's just because the trial size is much too small.  *grin*


Gaaa.  I can't add or subtract.  I meant:

    Experimentally, we're seeing 10%, but that might just be a fluke.  Or
    maybe it's just because the trial size is much too small.



> >>> def do_trial(n):
> ...     """Returns the number of duplicates if we do a n-trial."""
> ...     count_duplicates = 0
> ...     for i in range(n):
> ...         if has_duplication(make_roll(50, 6)):
> ...             count_duplicates = count_duplicates + 1
> ...     return float(count_duplicates) / n

The comment is wrong.  It should be:

     """Returns the probability of duplicates if we do an n-trial."""




> The variable names 'x' and 'y' suck (I'll try to think of better ones next
> time), but I hope that it's clear what we're doing: we're making
> do_trial() more general so it can handle different dice rolls.  And
> because they are parameters in our do_trial() function, we can then see
> what the situation loosk like as we get more and more kids in the
                     ^^^^^

Looks, not loosks.


Sorry about that!




More information about the Tutor mailing list