Skip to content

Instantly share code, notes, and snippets.

@jbryer
Created January 31, 2012 20:29
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jbryer/1712710 to your computer and use it in GitHub Desktop.
Save jbryer/1712710 to your computer and use it in GitHub Desktop.
Given a room with n people in it, what is the probability any two will have the same birthday?
## See http://en.wikipedia.org/wiki/Birthday_problem for an explanation of the problem
require(ggplot2)
require(reshape)
theme_update(panel.background=theme_blank(),
panel.grid.major=theme_blank(),
panel.border=theme_blank())
birthday <- function(n) {
1 - exp( - n^2 / (2 * 365) )
}
myBirthday <- function(n) {
1 - ( (365 - 1) / 365 ) ^ n
}
d = 200
df = data.frame(n=1:d, AnyTwoSame=birthday(1:d), SameAsMine=myBirthday(1:d))
df = melt(df, id.vars='n')
ggplot(df, aes(x=n, y=value, colour=variable)) + geom_line() + scale_colour_hue('') +
xlab('Number of People in Group') + ylab('Probability')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment