Getzval[n_, N_, x_, D_, d_, p_] := Module[{df0 = 0, fz = 0, z}, df0 = Sum[p[[i]] / (1 - p[[i]]), {i,N}] ; z = N / df0 * (n-d) / (N - (n - d)) ; fz = Sum[p[[i]] z / (1 - p[[i]] + p[[i]] z), {i,N}] ; While[Abs[fz - n + d] > 0.001, z = (n - d) / (df0 - (n-d)*(df0/fz - 1/z)); fz = Sum[p[[i]] z / (1 - p[[i]] + p[[i]] z), {i,N}] ; ]; z ]