Expected number of parallel tosses, where each coin gets heads at least once, of N unfair coins A common expectation question is to ask "What is the expected number of tosses to get heads with an unfair coin?" This problem can be solved using the recursive equation E = p*1+(1-p)*(E+1), resulting in the solution of E=1/p, where p is the probability of getting heads.
If the question is changed to "What is the expected number of parallel tosses, where each coin gets heads at least once, with N unfair coins assuming each coin has equal probability?," does the solution stay as E=1/p, because each coin is independent or is the solution more complicated? If the solution is more complicated, how is it solved?
 A: A recurrence can be written as:
\begin{align*}
   E_n& = \dfrac{1+\sum\limits_{k=1}^{n-1}\binom{n}{k}p^{n-k}q^{k}E_k}{1 - q^n} \\ E_1 &= \frac{1}{p} \\   
\end{align*}
where $p$ is the probability of getting head.
Hence, when $p=1/2$, we find that $E_5 = 2470/651 \approx 3.79416282642$
A: For N coins, we notice each coin is an independent random variable lets say $X_{i}$ for $i=1,...,N$. Now since we are trying to count how many tosses till get heads each $X_{i}\sim Geometric(p)$ (where p is probability of getting heads). Thus in order the random variable that describes how many tosses until all N coins get heads is $W=max \left\{X_{1},...,X_{N}\right\}$ where this distribution is derived as follows
$$F_{W}(w)=P(W\leq w)=P(max \left\{X_{1},...,X_{N}\right\}\leq w)=\prod_{i=1}^{N}P(X_{i}\leq w)=\left(F_{X}(w)\right)^{N}$$
thus pdf is 
$$f_{w}(w)=\frac{\delta}{\delta w}\left(F_{X}(w)\right)^{N}=N\left(F_{X}(w)\right)^{N-1}f_{X}(w)=N(1-(1-p)^{w+1})^{N-1}(1-p)^{w}p$$
Thus expected value would be 
$$\sum_{w=0}^{\infty}wN(1-(1-p)^{w+1})^{N-1}(1-p)^{w}p$$
which I couldn't derive explicitly so I did a simulation instead with $N=5$ and $p=\frac{1}{2}$ where R code is as follows

meanToss=function(numToss)

{

arr=NULL 

for(i in 1:1000) 
{

   coins=rep(0,numToss)

   trials=rep(0,numToss)

   while(sum(coins)!=length(coins))

{
  for(j in 1:numToss)

  {

      if(coins[j]==0)

      {

          flip=sample(c(0,1),1)

          coins[j]=flip

          trials[j]=trials[j]+1

      }

  }

}

   arr[i]=max(trials)

}

return(mean(arr))

}


I got that you would expect about 3.77 trials to have all get heads
Below is graph of expected value over different N

