Произвольно генерировать набор из m целых чисел из массива размером n

Полный вопрос:

Напишите метод для случайного генерирования набора из m целых чисел из массива размераn, Каждый элемент должен иметь равную вероятность быть выбранным`

Этот вопрос выбран из "Взломайте кодовое интервью и решение таково:

Мы можем поменять элемент с элементом в начале массива, а затем «Помните" что массив теперь включает только элементыj и больше. То есть когда мы выбираемsubset[0] бытьarray[k]заменяемarray[k] с первым элементом в массиве. Когда мы выбираемsubset[1], мы считаемarray[0] быть "мертвых" и мы выбираем случайный элементy между 1 и массивомsize(), Затем мы устанавливаем подмножество [1] равнымarray[y]и установитьarray[y] равно массиву [1]. Элементы 0 и 1 теперь «мертвых".Subset[2] сейчас выбран изarray[2] черезarray[array size()], и так далее.

Мой вопрос в том, что если мысжимаем массив, из которого мыперебирая случайные числа, то вероятность каждого числа выбирается1/remaining_num_elements, Как оно остается одинаковым для всех элементов?

Ответы на вопрос(3)

Ваш ответ на вопрос