Изменения

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

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

195 байт добавлено, 20:34, 16 декабря 2014
Нет описания правки
==Наивное решение==
Пусть <tex>S</tex> — массив множество из <tex>n</tex> элементов, тогда для генерации случайного сочетания сделаем следующее:
* '''Шаг 1.''' Запишем в массив <tex>C</tex> числа от <tex>1</tex> до <tex>k</tex>,
* '''Шаг 2.''' Выберем случайный номер сочетания <tex>r</tex>,
* '''Шаг 3.''' Применим алгоритм [[Получение следующего объекта|получение следующего сочетания]] <tex>r - 1</tex> раз к массиву <tex>C</tex>,
* '''Шаг 4.''' В <tex>C</tex> хранятся номера позиции из <tex>S</tex> входящих в случайное сочетание, запишем в <tex>C</tex> эти элементы.
 
 
*<tex>\mathtt{arrayOfElements}</tex> — массив, в котором находятся все элементы множества <tex>\mathtt{S}</tex>.
 
===Псевдокод===
<code>
'''int[]''' randomCombination('''int[]''' SarrayOfElements, '''int''' n, '''int''' k):
'''for''' i = 1 '''to''' k
C[i] = i
nextCombination(C, n, k) <font color=darkgreen> //nextCombination(C, n, k) генерирует следующие сочетание</font color=darkgreen>
'''for''' i = 1 '''to''' k
C[i] = SarrayOfElements[C[i]]
'''return''' C
</code>
Анонимный участник

Навигация