A) Write a Java program to compute the values of P(n):
P(n) = 1-365!/((365^n)(365-n)!)
For various values of n. Determine the value of n for which P(n) >= 0.5 and for which P(n-1) < 0.5 and for which P(n) > .95 and P(n-1) < .95. Your output should show the table of values P(n) for values of n from 0 - 365, and also print out the values of n found above. (Rdirect the output to a file).
B) Design an algorithm that will use open addressing with separate chaining (Chained Hashing) to resolve collisions when student data is stored using a hash table. Your hashing function will map students to a table T using the students date of birth. You may use 365 locations, and map February 29 to the same location as March 1. Show that your algorithm will work by tracing the outcomes for several student names and data. Be sure to demonstrate how your program would handle collisions. Identify all necessary data structures and methods that you are using. As part of the algorithm you would have to write hash function, insert, delete, and search methods in your HashTable class. You do not have to compile and run the program.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request.
3) Exclusive and complete copyrights to all work purchased. (No GPL, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site).
## Platform
The code must be written in Java. I use Suns j2sdk 1.4.1 to complie and run the code.