Expected Value for conditional chosen with repetition problem I am thinking of this for more than two weeks now and did not find any help in the literature:
I have this experiment: There is an urn with 9 balls inside, numbered 1-9. You draw a ball and record the number. After that you put the ball back inside the urn. You do this until you have drawn one number 8 times (it does not matter, which one). How many draws do you expect to do until you get one number 8 times?
The minimum number of draws is obviously 8 and the maximum is 64, but i did not find any distribution for this kind of problem.
The only thing I know from simulation is, that the expected value is about 39.309.
 Any Ideas?
 A: This problem is quite simple  combinatorially but finding closed forms
is difficult, indeed  the intermediate results indicate  there may not
be any.  Suppose we treat the case  of $n$ coupons where we wait until
some coupon has been seen $n-1$  times.  We have from first principles
that the probability for this to happen after $m$ draws is given by
$$P[T=m] = \frac{1}{n^m}
(m-1)! [z^{m-1}] \frac{d}{du} 
\left.\left(\sum_{q=0}^{n-3} \frac{z^q}{q!} + u\frac{z^{n-2}}{(n-2)!}
\right)^n\right|_{u=1}.$$
This is
$$P[T=m] = \frac{n}{n^m}
(m-1)! [z^{m-1}] \frac{z^{n-2}}{(n-2)!}
\left(\sum_{q=0}^{n-2} \frac{z^q}{q!}\right)^{n-1}.$$
We can now compute the expectation as follows.

F := n -> z^(n-2)/(n-2)!*add(z^q/q!, q=0..n-2)^(n-1);

X :=
proc(n)
local FF;
    option remember;

    FF := expand(F(n));
    add(m*n/n^m*(m-1)!*coeff(FF, z, m-1), m=n-1..1+(n-2)*n);
end;

For $n=9$ we thus obtain

> X(9);                                     
           96899089924114484187946852578422805520046700098386996168
           --------------------------------------------------------
           2465034704958067503996131453373943813074726512397600969

> evalf(%);
                                      39.30942219

The form of this result indicates there may not be a simple answer. If
there  were any  possibility of potential cancellation  it would  have
appeared at this point.
Code.

#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
#include <time.h>
#include <string.h>

int main(int argc, char **argv)
{
  int n = 6, trials = 1000; 

  if(argc >= 2){
    n = atoi(argv[1]);
  }

  if(argc >= 3){
    trials = atoi(argv[2]);
  }

  assert(1 <= n);
  assert(1 <= trials);

  srand48(time(NULL));
  long long data = 0;

  for(int tind = 0; tind < trials; tind++){
    int dist[n]; int steps = 0;

    for(int cind = 0; cind < n; cind++){
      dist[cind] = 0;
    }

    while(1){
      int coupon = drand48() * (double)n;

      steps++;

      if(dist[coupon] == n-2)
        break;
      dist[coupon]++;
    }

    data += steps;
  }

  long double expt = (long double)data/(long double)trials;
  printf("[n = %d, trials = %d]: %Le\n", 
         n, trials, expt);

  exit(0);
}

