There are n people at a party. At the end they each take a coat at random. 
a) How many ways can coats be chosen such that no person picks up their own coat/what is the probability that no person picks up their own coat?

b) In how many ways can a coat be chosen such that at least one person picks up the correct coat?

c)In how many ways can a coat be chosen such that exactly one person picks up the correct coat?

For part a) I have used d(n)=n!\*sum from k=0 to infinity((-1)^k)/k!), however am unsure on how to calculate the probability that no person picks up their own coat, and how to go about answering b) and c).

Any help would be appreciated! 

Thanks