[R] birthday problem (factorial limit)

plummer at iarc.fr plummer at iarc.fr
Sun Sep 28 20:34:55 CEST 2008


Quoting "(Ted Harding)" <Ted.Harding at manchester.ac.uk>:

> On 28-Sep-08 17:51:55, Uwe Ligges wrote:
> > Jörg Groß wrote:
> >> Hi,
> >> I tried to calculate the formula for the birthday problem
> >> (the probability that at least two people out of a group of
> >> n people share the same birthday)
> >>
> >> But the factorial-function allows me only to calculate
> >> factorials up to 170.
> >>
> >> So is there a way to push that limit?
> >>
> >> to solve this formula:
> >>
> >> (factorial(365) / factorial((365-23))) / (365^23)
> >
> > Obviously you can easily rewrite this formula to:
> >
> > prod(343:365) / (365^23)
> >
> > or
> >
> > factorial(23) * choose(365, 23) / (365^23)
> >
> > Uwe Ligges
> >
> >> (n=23)
>
> I would put it in an even "safer" form:
>
> n <- 23
> prod( ((365-(n-1)):365)/rep(365,n) )
>
> In other word: It evaluates
>
>  (343/365)*(344/365)* ... *(365/365)
>
> 365^N --> "Inf" if N > 120, whereas
>
>   n<-150
>   prod( ((365-(n-1)):365)/rep(365,n) )
> # [1] 2.451222e-16
>
> Best wishes,
> Ted.

There is a pbirthday function and a qbirthday function in the
stats package, which give approximate probability calculations
for the birthday problem. The Examples section of the help page
also contains Ted's more accurate solution.

Martyn
-----------------------------------------------------------------------
This message and its attachments are strictly confidenti...{{dropped:8}}



More information about the R-help mailing list