How to calculate the probability of $3$ heads out of $10$ coins IF each coin has a different probability for head Let's say
I have $10$ biased coins. Each coin has a different probability for head.
$$\text{coins} = [10\%, 20\%, 30\% ...]$$
I flip each coin once
What is the probability of getting:


*

*At least $3$ heads

*Exactly $3$ heads

 A: You can use a probability generating function.  If the probability that coin $i$ comes up heads is $p_i$ for $i = 1,2 ,3 \dots ,10$, then the probability that you will get exactly $n$ heads when the ten coins are tossed is the coefficient of $x^n$ in
$$\prod_{i=1}^{10} (1 - p_i + p_i x)$$
when the product is expanded.  This is easy if you have a computer algebra system but tedious otherwise.  
The result when $p_i = 0.1  i$ is
$$0.00036288 x^{10}+0.00699984 x^9+0.0482076 x^8+0.159749 x^7+0.28468 x^6+0.28468 
   x^5 \\+0.159749 x^4+0.0482076 x^3+0.00699984 x^2+0.00036288 x$$
so the probability of exactly three heads is $0.0482076$.  For the probability of at least three heads, add the probabilities for one or two heads and subtract from 1. (It is not possible to get zero heads in this example, because $p_{10} = 1$.)
A: The solution is easy but cumbersome (if I am using the right word). So, I will show the solution for $4$ coins (for the sake of simplicity.) And assume the probabilities to get heads are different: $a,b,c,d$.
If we have $4$ coins then there are 4 possibilities to get exactly $3$ heads and there is one more possibility to get at least $3$ heads as shown below

Accordingly the probability to get exactly $3$ heads is
$$abc+acd+abd+bcd.$$
If we want the "at least" case then we have to add $abcd$.
In the case of $10$ coins the number of possibilities for exactly $3$ heads is ${10 \choose 3}=120$ and all have to be listed like above. In the "at least" case we have much more possibilities to be listed: $\sum_{i=3}^{10} {10\choose i}$ and all have to be depicted.
A: I wrote some r code to simulate the process of flipping the biased coins. Will 1 million iterations, I found $ p(H=3) \approx 0.0481$ which agrees nicely with @awkward's answer, and $p(H\ge 3) \approx 0.992$

niter <- 1e6 # number of iterations
p <- c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0) # probabilities

results <- rep(0, niter)

for(i in 1:niter){
  trial <- runif(10) < p;
  results[i] <- sum(trial);
}

sum(results == 3) / niter # p(H = 3)
sum(results >= 3) / niter # p(H >=3)

hist(results, breaks = c(-1:10)+0.5, freq = FALSE, 
    xlab="Number of Heads", 
    main = paste("Histogram of \n",paste(p, collapse = ", "))
)

