Случайный выбор

Для двух целых чисел N и n (N> = n> 0), как сгенерировать случайный выбор (без повторения!) из [0, N) с длиной = n? Например, если N = 5, n = 3 возможных решения: (3,0,2) или (2,4,1) и т. Д.

Существует ограничение, препятствующее использованию наивного подхода: использование памяти должно быть O ( n), а не O (N).

/ * Под наивным подходом я подразумеваю использование временного массива размером = N, изначально заполненного числами 0..N-1 по порядку. Обязательные n элементов выбираются случайным образом из этого массива. * /

5
задан skaffman 24 March 2011 в 08:36
поделиться