Страницы: 1
RSS
Все возможные комбинации m^n
 
Привет всем!

Читал искал везде, но нигде что-то не то все

Нужна помощь или хотя бы совет
Есть таблица из 9 событий по 3 варианта,
Необходимо составить список всех возможных комбинаций, нужны как цифры, так и рядом в отдельном столбце что именно перемножается (что с чем)
например как в файле:
1 вариант произведение всех первых исходов в 9 событиях
2 вариантпроизведение второго исхода первого события и всех первых исходов в 8 событиях
и так далее по всем возможным комбинациям

в соседнем столбце рядом с общим произведением исходов, строка из множителей
из 9 событий по 3 варианта 3^9=19683 комбинации

Подскажите куда копать и что почитать, и если для кого это простая задача, сделайте, пожалуйста, доброе дело!
Спасибо
Изменено: vbujym - 03.09.2016 02:06:07
 
vbujym, здравия. Логику до конца не понял. Покажите в файле ещё несколько ручных вариантов. Старый файл в сообщении замените на новый. Спасибо.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, логика очень простая, необходимо составить список всех возможных комбинаций исходов в 9 событиях

например 1-ое событие из 3 исходов А, Б, В (это некие числа), 2 событие исходы Г, Д, Е
исходя из формулы количества вариантов n^m получаем 3^9=19683 варианта для всей таблицы
2 события по 3 исхода 3^2=9
в них соответственно будет 6561 вариант когда в первом событии будет использоваться исход А, 6561 вариант с Б, и 6561 вариант с В, 3*3^8=3^9=19683

соответственно дальше для каждого 1 исхода 1-го события следующие возможные множители второго события это Г, Д, Е всего 9 вариантов из 2 событий по 3 исхода: 3^2=3*3=9                                            АГ, АД, АЕ, БГ, БД, БЕ, ВГ, ВД, ВЕ
дальше добавляем 3 событие с 3-мя исходами Ж, З, И
теперь вариантов уже будет 27:   9*3=27, каждое полученное на прошлом этапе произведение, теперь перемножится с новыми исходами:
АГЖ, АДЖ, АЕЖ, АГЗ, АДЗ, АЕЗ, АГИ, АДИ, АЕИ
БГЖ, БДЖ, БЕЖ, БГЗ, БДЗ, БЕЗ, БГИ, БДИ, БЕИ
ВГЖ, ВДЖ, ВЕЖ., ВГЗ, ВДЗ, ВЕЗ, ВГИ, ВДИ, ВЕИ  

Теперь далее прибавляем 4 событие из 3 исходов - теперь уже будет 27*3=81 комбинация
Далее прибавляем 5 событие по 3 исхода 81*3=243
Далее прибавляем 6 событие по 3 исхода 243*3=729
и так далее до 9 события  
 
Решение НЕ оптимальное, которое использую у себя для комбинирования столбцов разного размера. Значения придётся транспонировать. Макрос на кнопке.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
vbujym, трудно понять что Вы хотите, но в файл JayBhagavan добавил лист СочетанияИз9По3,
где отражены все возможные сочатания (их всего 84, поправте меня если в файле пропущено какое-то сочетание)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Я решил при помощи абсолютных ссылок) и долгого копирования)

JayBhagavan, очень даже классно, так и представлял примерно. А можно добавлять или убирать события?
Подскажете как Вы это сделали, чтобы я смог сам разобраться? О чем почитать?

Ігор Гончаренко,нет вы неправильно понимаете задачу, не 3 сочетания из 9 событий (по формуле n!/m!(n-m)!), а все возможные комбинации из 9 событий по 3 исхода, это как например генератор кодов: код длиной в 9 символов, а символов всего 3, значит всего возможных кодов 3^9

JayBhagavan, совсем плохо работает с иррациональными числами, если с простыми практически за минуту выдает исход, то с числами типа 1,23 думает уже 10 минут
Изменено: vbujym - 03.09.2016 12:41:47
 
почитайте Комбинаторика и Программирование
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
во вложении примеры исходных данных и результатов работы макроса ВКомбинатор
исходными данными служит 2-мерный массив произвольных размеров
в каждой строке может быть произвольное количество значений

на выходе массив возможных комбинаций содержащий по 1-му значению из каждой строки
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
JayBhagavan, Ваше решение превосходное, спасибо! Только один момент: когда меняю цифры на другие, вылетает ошибка и макрос не выдает таблицу. Приходится каждый раз заново скачивать файл.
 
vbujym, покажите изменённую таблицу в файле, которая вызывает сбой. (загрузите в сообщение) У меня ещё ни разу сбоя не наблюдалось.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, добрый день!

Итак, я скачиваю файл, вбиваю свои данные, жму кнопку - все отлично, есть список (причем он настолько замечательно делается, я радуюсь всегда, если в 1 стобце стоит одинаковое число, то он соответственно не делает лишние строки, просто изумительно!)

Затем я копирую данные обрабатываю и так далее.

Теперь мне, например, нужна новая таблица с другими числами, я открываю заново тот же файл, из которого я получил первую таблицу, заменяю там числа в матрице, жму кнопку и все, excel висит.

Хотя вот сейчас попробовал, все работает, необходимо очищать предыдущую таблицу и сохранять новые данные в таблице.
Вот такая ошибка сейчас была, когда я не стер таблицу предыдущую и закрыл неотвечающий excel.
 
vbujym, да, забыл сказать, что заполненные макросом ячейки надо вручную очищать перед очередным запуском макроса.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, вот в этом файле не выдает таблицу
 
vbujym, всё работает. Надо удалять НЕ содержимое ячеек, а полностью столбцы с сформированными ранее макросом данными.
Скорректировал макрос:
- обрабатывает данные с яч. 1го столбца и 1й строки (убрал usedrange, заменил на currentregion)
- сам удаляет ранее сформированные данные без предупреждения, но я предупредил (а то юзеры сами не умеют этого толком сделать ;) )
Изменено: JayBhagavan - 05.09.2016 14:30:40 (Файл! Карл! =))))

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, да, этот файл очень хороший, я просто попробовал, 4 строки сможет ли обработать (это 262000 комбинаций примерно), вот такая ошибка) раньше я пробовал 10 столбцов, все получалось и это очень хорошо, бывает до 15 приходится обрабатывать. 4 строки это я просто попробовал))) мне не нужно, но может быть Вам будет интересно, так сказать пища для размышлений.
 
vbujym, в моей работе так много комбинаций не нужно использовать. Спасибо за наблюдение и замечание. Повторюсь, макрос НЕ идеален и НЕ оптимален. Как он будет себя вести на больших объёмах я тестировать не собираюсь (если не приспичит) и менять его тоже желания не имею.
Возможно предложат Вам альтернативное решение, например, на SQL.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
так нужно?
первых 5тыс.комбинаций из 6561 в файле
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, нет, в итоге таблица должна быть из 9 стобцов и m^n строк, например для 9 событий по 3 исхода таблица будет размером 9 столбцов и 3^9=19683 строк
Страницы: 1
Читают тему
Наверх