Изменения

Перейти к: навигация, поиск

Методы генерации случайного сочетания

511 байт добавлено, 17:53, 16 декабря 2014
Нет описания правки
*<tex>arrayOfElements</tex> — массив в котором находятся все элементы множества <tex>C</tex>,
*<tex>exist</tex> — такой массив, что если <tex>exist[i] == 1</tex>, то <tex>i</tex> элемент присутствует в множестве <tex>S</tex>,*<tex>\mathrm{random(1..i)}</tex> генерирует случайное число в интервале <tex> [1;\; i] </tex>.
===Псевдокод===
Для более быстрого решения данной задачи воспользуемся следующим алгоритмом: пусть задан для определенности массив <tex>a</tex> размера <tex>n</tex>, состоящий из <tex>k</tex> единиц и <tex>n - k</tex> нулей. Применим к нему [[Метод генерации случайной перестановки, алгоритм Фишера-Йетса|алгоритм генерации случайной перестановки]]. Тогда все элементы <tex>i</tex>, для которых <tex>a[i] = 1</tex>, включим в сочетание.
 
*<tex>arrayOfElements</tex> — массив в котором находятся все элементы множества <tex>C</tex>,
*<tex>randomShuffle()</tex> — функция генерации случайной перестановки,
*<tex>\mathrm{random(1..i)}</tex> генерирует случайное число в интервале <tex> [1;\; i] </tex>.
===Псевдокод===
Анонимный участник

Навигация