Задать вопрос
AVollane
@AVollane
Начинающий C# разработчик

Как выполнить размещение k элементов из n?

Здравствуйте! Необходимо создать изящный алгоритм для поиска размещения. А конкретно нужно выполнить размещение по 7 элементов из 8. Алгоритмы, которые я видел в интернете, работают с числовыми массивами, а у меня массив символов (char'ов). Все комбинации нужно сохранить, т.к. потом среди них будут проводиться выборки. Заранее спасибо.
  • Вопрос задан
  • 134 просмотра
Подписаться 1 Простой 8 комментариев
Решения вопроса 1
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Гуглите "алгоритм генерации размещений". Находится, например, это.

Работа с символами ничем не отличается от работы с числами. Во всех языках символы можно сравнивать по их кодам, и в алгоритмах кроме сравнения ничего нет.

Или можно сгенерировать размещения из {1,2,3,...N} а потом использовать эти числа в размещениях, как индексы символов. Надергайте из заданной строки символы по этим позициям и получите размещение из символов, а не чисел.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Mercury13
Программист на «си с крестами» и не только
Будут повторы?
Если не будет — то достаточно отсортировать char’ы и использовать числовой алгоритм.
Если будут — ищите «размещения с повторами», и тоже сортируйте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы