Скажем, у меня есть предварительно заданный набор S из m элементов. Я хотел бы создать случайную комбинацию n (уникальных) элементов, взятых из S.Программирование на С: Генерировать случайные n-комбинации из заданного набора?
Есть ли простой способ реализовать это в C? Я посмотрел на Ранд(), но, похоже, он не делал то, что я хочу.
(EDIT, чтобы добавить больше деталей)
Специфической проблемой является случайным образом выбирать п различных элементов из массива размером м. Мой первый инстинкт должен сделать это:
idx_array = []
INT IDX = рандов()% м
[если IDX не в idx_array, добавить к idx_array. В противном случае повторите выше строки. Повторяйте до тех пор, пока idx_array не будет иметь размер n]
Но это не похоже, что этот процесс действительно случайный. Я все еще новичок в C и на самом деле просто хочу знать, есть ли встроенная функция для этой цели.
Любая помощь приветствуется.
Пожалуйста, покажите свое исследование до времени. Сначала прочитайте страницу [Ask]. –
_ Есть слишком много возможных ответов, или хорошие ответы будут слишком длинными для этого формата. Пожалуйста, добавьте детали, чтобы сузить набор ответов или изолировать проблему, на которую можно ответить в нескольких параграфах. –
'Но это не похоже, что этот процесс действительно случайный. Я все еще новичок в C и на самом деле просто хочу знать, есть ли встроенная функция для этой цели. «Нет, ни один компьютер не может генерировать истинное случайное число. Это псевдослучайно. – SnakeDoc