Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / перечень возможных комбинаций / 7 сообщений из 7, страница 1 из 1
10.03.2020, 11:41
    #39935878
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перечень возможных комбинаций
Добрый день!

Необходимо сгенерить (желательно, формулами или более-менее автоматизированно) все возможные комбинации выборок.
Как известно, число способов выбора одного элемента в каждой из k групп, состоящих из ni элементов, определяется соотношением N = n1*n2*n3*…*nk. То есть, если у меня k=три элемента и каждый элемент, например, может принимать целое число в диапазоне от 1 до 5, то решением задачи будет генерация N = 5*5*5 = 125 строк (начало будет таким, как под катом).

111112113114115121122123124125131132133134135141142143144145151152153154155211212213214215
...
Рейтинг: 0 / 0
10.03.2020, 11:53
    #39935884
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перечень возможных комбинаций
есть пока две идеи
1) генерить =СЛУЧМЕЖДУ() на 1 млн строк по всем переменным и удалять дубликаты (не всегда работает, т.к. может не хватить уникальных)
2) писать вложенный цикл на VBA

Если найдется что-то более универсальное, буду очень признателен!
...
Рейтинг: 0 / 0
10.03.2020, 12:11
    #39935894
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перечень возможных комбинаций
Рекурсивно.

Передаёшь вниз текущий уровень и текущую недокомбинацию. Если на очередном витке уровень последний - выводишь, иначе в цикле присоединяешь каждый элемент текущего уровня, плюсишь уровень, и передаёшь дальше.
...
Рейтинг: 0 / 0
10.03.2020, 12:41
    #39935905
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перечень возможных комбинаций
Akina, спасибо за ответ. С рекурсивными алгоритмами я не сильно знаком, но попробую вкурить :)
...
Рейтинг: 0 / 0
10.03.2020, 12:55
    #39935912
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перечень возможных комбинаций
PlanB
Akina, спасибо за ответ. С рекурсивными алгоритмами я не сильно знаком, но попробую вкурить :)
Все, на что я способен :) Ну хоть работает для k=3
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub scorecard_cheq()

    For n1 = 1 To 5
        For n2 = 1 To 5
            For n3 = 1 To 5
                Npp = Npp + 1
                Cells(Npp, 1) = n1
                Cells(Npp, 2) = n2
                Cells(Npp, 3) = n3
            Next n3
        Next n2
    Next n1

End Sub
...
Рейтинг: 0 / 0
10.03.2020, 15:06
    #39935970
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перечень возможных комбинаций
Код: sql
1.
2.
3.
A1=ОСТАТ(СТРОКА()-1;5)+1
B1=ОСТАТ(ЦЕЛОЕ((СТРОКА()-1)/5);5)+1
C1=ЦЕЛОЕ((СТРОКА()-1)/25)+1


Растянуть до 125 строки включительно.
...
Рейтинг: 0 / 0
10.03.2020, 16:31
    #39936017
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перечень возможных комбинаций
Akina,
Спасибо большое!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / перечень возможных комбинаций / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]