Plotting Birthday Problem in MATLAB: Analytical Form vs Code Implementation

  • Context: MATLAB 
  • Thread starter Thread starter Bassalisk
  • Start date Start date
  • Tags Tags
    Matlab
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
4 replies · 4K views
Bassalisk
Messages
946
Reaction score
2
So I am trying to plot the birthday problem.

Number of people vs chance not to have the same birthday.

I know the analytical form

[itex]P(n)={\Large\frac{365\cdot 364\cdot 363...(365-n+1)}{365^{n}}}[/itex]

problem is, MATLAB is giving me this, when I try to put that into code.

[PLAIN]http://pokit.org/get/e8cbb0974a4b30d349d554c27ab0f537.jpg

And that's only trying to realize the top part of the fraction.

I am trying to get this result.

[URL]http://upload.wikimedia.org/wikipedia/commons/f/ff/Birthdaymatch.png[/URL]

Source wikipedia.Thank you.
 
Last edited by a moderator:
on Phys.org
Dr Transport said:
looks like you are not dividing by 365 to the nth power

Still he is giving me infinity. I think he calculates factorial first, then to the nth, then divides that and still gets infinity
 
Unfortunately, MATLAB has maxima on both integers and floating point numbers:
http://www.mathworks.com/help/techdoc/ref/intmax.html
http://www.mathworks.com/help/techdoc/ref/realmax.html

I believe that both are exceeded by the calculations that you're trying to make in the numerator and denominator.

However, I believe that you can do this recursively (i.e. start with n=0, and use this result to generate n=1, use that result to generate n=2, etc.)
http://en.wikipedia.org/wiki/Recursion_(computer_science)
 
MATLABdude said:
Unfortunately, MATLAB has maxima on both integers and floating point numbers:
http://www.mathworks.com/help/techdoc/ref/intmax.html
http://www.mathworks.com/help/techdoc/ref/realmax.html

I believe that both are exceeded by the calculations that you're trying to make in the numerator and denominator.

However, I believe that you can do this recursively (i.e. start with n=0, and use this result to generate n=1, use that result to generate n=2, etc.)
http://en.wikipedia.org/wiki/Recursion_(computer_science)

My hero <3 Thank you!