Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,665
Записей в блоге: 66

Перебор возможных вариантов выборки из массива

15.04.2021, 15:01. Показов 1107. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, алгоритм генерации всех возможных выборов [n] элементов из массива в [m] элементов.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.04.2021, 15:01
Ответы с готовыми решениями:

Перебор вариантов возможных ошибок с помощью модифицированного кода Хемминга
Как такое можно сделать? Например для таких данных: Исходное слово X=1001 модифицированная проверочная таблица Хемминга: ...

Перебор всех возможных сумм массива
Добрый день. Есть задача написать процедуру на вход которой будет подаваться двумерный массив рандомной размерности. Требуется вывести все...

Перебор всех возможных вариантов массива
Добрый день. У меня такая задача, имеется два массива одинаковой размерности. Мне заведомо известно, что при правильной расстановке строк в...

5
Модератор
Эксперт функциональных языков программирования
3137 / 2284 / 469
Регистрация: 26.03.2015
Сообщений: 8,888
15.04.2021, 15:52
Делаете массив размера m для выбранных индексов.

Для получения следующего выбора:
Для всех разрядов:
Пытаемся увеличить на 1 текущий индекс. (Каждый индекс не должен превышать следующий).
Если удалось, то увеличиваем и возвращаем Истина
Если не удалось, то сбрасываем в начальное значение indexes[i] = i и переходим к следующему.
Если нельзя перейти к следующему, то возвращаем Ложь.

Например, так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
bool Next(int[] indexes, int maxIndex)
{
    int i = 0;
    while(i < indexes.Length - 1)
    {
        if(++indexes[i] < indexes[i + 1])
            return true;
        indexes[i] = i++;
    }
 
    return ++indexes[i] < maxIndex;
}
Функцию можно использовать в цикле
C#
1
do {} while(Next(indexes, m));
1
691 / 575 / 75
Регистрация: 20.09.2014
Сообщений: 3,751
15.04.2021, 20:23
Комбинаторика задает уточняющие вопросы:
1. Элементы в m-массиве повторяются?
2. Порядок элементов в выборе важен?

В зависимости от ответа на эти вопросы, даются формулы вычисления числа сочетаний, перестановок, размещений с повторением или без. Всего 6 формул и соответственно алгоритмов перебора.

Еще есть вопрос комбинаторики: "А есть ли выбор?", этот вопрос эквивалентен вопросу "m != n?". На этот вопрос в условии задачи есть ответ, на первые два - нет.
Алгоритмы искать у Д. Кнута.
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,665
Записей в блоге: 66
15.04.2021, 20:55  [ТС]
В массиве элемента не повторяются, порядок выбранных элементов важен.

Добавлено через 2 минуты
n < m

Добавлено через 32 секунды
Shamil1, спасибо, буду вникать
0
691 / 575 / 75
Регистрация: 20.09.2014
Сообщений: 3,751
15.04.2021, 21:14
Тогда ваш случай - размещения без повторений, число элементов A(n, m) = n! / (n - m)! Алгоритмы размещений без повторений в интернете можно найти.
1
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,665
Записей в блоге: 66
16.04.2021, 06:19  [ТС]
Mikhaylo, Благодарю за пояснения.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.04.2021, 06:19
Помогаю со студенческими работами здесь

Перебор всех возможных вариантов
Предположим, у меня есть список spisok = Как вывести все возможнеы комбинации длиной 3, те xxx xxy xxu .... zzz

Перебор всех возможных вариантов
Доброго всем дня! Есть задача: На вход дается строка из символов '0' '1' и '2' длиной не более 50. Нужно изменить число 0 на 1...

Перебор всех возможных вариантов в масиве
Доброй ночи. Столкнулся с проблемой нужно перебрать ВСЕ варианты (для упрощения) массива. Для примера массив (динамический)...

Перебор всех возможных вариантов (рекурсивно)
Не буду вникать в суть программы. Предположим у меня есть архивы с точками, мне нужно выбрать минимальную комбинацию, этих архивов что бы...

Перебор всех возможных вариантов фильтров
Всем привет, в общем задача следующая: Есть файлик excel в нём может быть более 1000 строк и порядка 30 столбцов (кол-во столбцов всегда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru