Я не волшебник по математике, но я сделаю это с точностью. Это НЕ гарантирует, что все будет правильно.
Для каждого дополнительного члена M вы выбираете число, смотрите, есть ли оно, и добавляется ли оно. В противном случае, вы попробуйте еще раз. Попытка чего-либо, пока вы не добьетесь успеха, называется геометрическим распределением вероятностей.
http://en.wikipedia.org/wiki/Geometric_distribution
Итак, вы проводите M геометрических испытаний. Каждое испытание имеет ожидаемое значение 1 / p, поэтому потребуется 1 / p попыток получить число, которого еще нет в M. p - N минус число чисел, которое мы уже добавили из M, деленное на N (то есть, сколько не выбранных элементов / всего предметов). Таким образом, для четвертого числа p = (N -3) / N, которое является вероятностью выбора неиспользованного числа, поэтому ожидаемое количество выборов для третьего числа равно N / N-3.
Ожидаемое значение времени выполнения - все это суммируется. Так что-то вроде
E (время выполнения) = N / N + N / (N -1) + N / (N -2) ... + N / (N-M)
Теперь, если M
Спроси меня, если что-то из этого неясно. Поправьте меня, если что-то из этого не так:)