Изменения

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

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

3 байта убрано, 17:11, 16 декабря 2014
Наивное решение
Пусть <tex>S</tex> — массив из <tex>n</tex> элементов, тогда для генерации случайного сочетания сделаем следующее:
* отсортируем <tex>S</tex>,* запишем в массив <tex>C</tex> первые числа от <tex>k1</tex> элементов до <tex>Sk</tex>,
* выберем случайные номер сочетания <tex>r</tex>,
* применим алгоритм генерации следующего сочетания <tex>r - 1</tex> раз к массиву <tex>C</tex>.
sort(S);
'''for''' i = 1 '''to''' k
C[i] = S[i]
r = random(1, n! / (k!(n - k)!))
'''for''' i = 1 '''to''' r - 1
next_Combination(C, n, k)
'''for''' i = 1 '''to''' k C[i] = S[C[i]] '''return''' resC
</code>
Анонимный участник

Навигация