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
]