Декартово (прямое) произведение

Публикация № 522956 11.05.16

Разработка - Математика и алгоритмы

Перебор сочетаний значений полный перебор прямой перебор уникальные сочетания значений списков уникальные сочетания значений массивов все возможные сочетания элементов массивов сочетания элементов массивов

Прямое или декартово произведение двух множеств — это множество, элементами которого являются всевозможные упорядоченные пары элементов исходных множеств.

В данной обработке представлен пример для 3-х списков с 9,6 и 2 значениями соответственно. Сам же алгоритм настроен для работы с n-ным количеством массивов различной размерности.  На выходе обработки мы получаем таблицу из 3 (количество массивов) колонок и 108 (9*6*2) строк. 

Пример использования в 1С:
Алгоритм может пригодиться, к примеру, когда открываются аналитические счета в Бухгалтерии НФО. Для 3-х аналитик с 6-10 соответствиями значений необходимо вручную задавать 216-1000 различных соответствий и значений. Это очень трудоемко и практически невыполнимо для ручного ввода. 

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

куда передаем свои значения

 

Скачать файлы

Наименование Файл Версия Размер
Декартово произведение

.epf 10,80Kb
9
.epf 1.1 10,80Kb 9 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. DrAku1a 1590 19.05.16 02:23 Сейчас в теме
Декартово произведение. Википедия: Прямое произведение множеств
В запросе делается легко.
В коде - процедура / функция "Для каждого" (для пары массивов). Для любого количества множеств - делаем последовательное произведение каждого элемента множества, полученного на предыдущем шаге на очередной массив.
2. yojeeg 144 19.05.16 11:07 Сейчас в теме
(1) DrAku1a, спасибо большое за наводку! Переделал рекурсию на запрос.
Оставьте свое сообщение

См. также

Почему НДС отличается на одну копейку: решение с помощью таблицы значений

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 НДС Абонемент ($m)

Почему все-таки иногда НДС может на одну копейку быть больше или же быть меньше, неужели это все ошибки программистов, которые написали неправильный алгоритм? в этом решении постараюсь вас приблизить к бинарному алгоритму, который считает после запятой тысячными или сотыми, как и обещал, не ради денег и не ради славы, а для продвижения индустрии компьютерных технологий!

1 стартмани

12.12.2022    2368    0    kucar_ip    5    

2

Найди слова

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Пример примитивной автоматизации с помощью 1С (и не только).

3 стартмани

11.08.2022    3052    0    SerVer1C    10    

5

Если хочется ООП с наследованием и полиморфизмом

Математика и алгоритмы Языки и среды Платформа 1С v8.3 Абонемент ($m)

Объектно-ориентированное программирование (ООП), как методология или парадигма, в 1С отсутствует. И не похоже, чтобы в ближайшем будущем оно появилась. Однако со стороны сообщества не прекращаются попытки привнести в процесс разработки некоторые его элементы и подходы. Предлагаю вашему вниманию свой вариант эмуляции ООП. Основной упор в статье сделан на обеспечение наследования и полиморфизма (вызов методов, определенных в классах-потомках, из методов классов-предков и наоборот).

1 стартмани

21.07.2022    3752    1    Alxby    11    

10

IDN и Punycode в 1С

Универсальные функции Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка "Punycode конвертер".

1 стартмани

01.05.2022    3461    2    SpaceOfMyHead    2    

8

Реализация задачки с собеседования: найти максимальное число, но не более, чем ограничено параметром

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Реализация небольшой задачки с собеседования: найти максимальное число в матрице чисел размерностью M*N, заполненной случайными числами, но не большее, чем задано ограничивающим параметром. Сразу скажу, это не с моего собеседования. Просто интересно было решить ее на платформе 1С.

1 стартмани

31.03.2022    3904    0    serverstar    15    

2

Модель распределения суммы по базе

Математика и алгоритмы Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    6090    6    kalyaka    11    

36

Вычисление хеша по алгоритму fnv1a

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Вычисление средствами платформы хеш суммы по алгоритму fnv1a 32/64.

1 стартмани

01.02.2022    3720    0    dim_zal    0    

5

Решение задачи Эйнштейна на 1С (управляемые формы)

Математика и алгоритмы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Пример решения классической задачи Эйнштейна с задаваемыми условиями и с выводом итераций на управляемых формах.

1 стартмани

13.08.2021    5120    2    VGorkunov    4    

8

Разработка с учетом Показателей

Математика и алгоритмы Платформа 1С v8.3 Россия Абонемент ($m)

Время от времени приходится разрабатывать алгоритмы расчета с некоторыми условными значениями. Я их называю Показателями. Данная статья предлагает один из методов работы с Показателями.

1 стартмани

04.06.2021    5156    0    blockcode    1    

1

Машинное обучение и анализ данных

Математика и алгоритмы Идеи и тренды в разработке Платформа 1С v8.3 Абонемент ($m)

Данная конфигурация предназначена для автоматизации процесса машинного обучения и анализа данных средствами 1С.

1 стартмани

04.05.2021    8407    19    cdrw3    11    

15

Алгоритм и обработка для проведения розыгрыша среди анкет

Математика и алгоритмы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Описанный алгоритм (и приложенная обработка) позволяют организовать проведение розыгрыша среди анкет практически на любой управляемой конфигурации и платформе 1С 8.

1 стартмани

12.03.2021    4786    0    delta    2    

2

Алгоритм Карацубы

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Реализация метода Карацубы - функции быстрого умножения, которая позволяет перемножать два n-значных числа с битовой вычислительной сложностью (реализация на платформе 1С:Предприятие 8.3 (8.3.9.2233))

1 стартмани

31.08.2020    4751    2    Tatsiana    3    

3

Решение задачи Эйнштейна на платформе 1с

Математика и алгоритмы Платформа 1С v8.3 Абонемент ($m)

Недавно мне попалась интересная задача по созданию обработки, которая будет решать "задачу Эйнштейна". Изначально кажется, что можно просто прописать все явные и неявные условия через "Если", но это не верно. При таком подходе задачу решает ваш мозг, а решить задачу должна сама обработка основываясь только на условиях явно прописанных в тексте. Разработчик не должен делать никаких выводов и прописывать косвенные условия вытекающие из условия задачи. Условия задачи в коде должны переставляться в любом сочетании и это не должно влиять на решение.

1 стартмани

12.08.2020    6249    4    itmind    2    

7

Пример программирования методом Конечных автоматов на базе написания парсера CSV

Математика и алгоритмы Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Способ реализации программирования методом Конечного автомата на примере написания парсера CSV-файла с обработкой двойных кавычек и многострочным текстом в ячейках.

1 стартмани

17.06.2020    7005    0    Salimbek    3    

3

Расчет времени циклов солнца

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

25.05.2020    3958    0    116hrus    0    

2

Treemapping. Демонстрационная обработка

Математика и алгоритмы Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Пример реализации диаграммы вида Treemap на 1С

1 стартмани

27.02.2020    8873    18    randomus    4    

30

Генератор случайных чисел по заданному закону распределения

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

06.01.2020    4961    5    WalterFOX    1    

3

Алгоритмы поиска пути в графе. Часть 2

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Новые возможности, ранее реализованных алгоритмов поиска пути в графе на платформе 1С 8.3.

1 стартмани

13.08.2019    13777    11    RonX01    10    

92

Алгоритмы поиска пути в графе

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Реализуем алгоритмы поиска пути в графе на платформе 1С 8.3, такие как алгоритм А*, поиск в ширину, жадный поиск, алгоритм Дейкстры и вконце волновой.

1 стартмани

09.07.2019    29565    14    RonX01    11    

116

Сортировка кучей (пирамидальная сортировка, heap sort)

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Алгоритм сортировки массива кучей (пирамидальная сортировка).

1 стартмани

29.03.2019    6850    4    FirstSmart    0    

5

Случайная неслучайная скидка

Ценообразование, анализ цен Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Абонемент ($m)

Найти случайное число, но сделать так, чтобы чем меньше значение, тем чаще выпадало это число (с обратной экспоненциальной зависимостью).

1 стартмани

24.01.2019    4567    0    Hokum    1    

1

Нечеткое сравнение строк. Метод Джаро-Винклера на 1С

Математика и алгоритмы Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Схожесть строк. Метод Джаро-Винклера. В обработке реализован алгоритм нечеткого сравнения строк.

3 стартмани

20.04.2018    31033    120    Serg1701    20    

141

Решение задачи коммивояжера алгоритмом Литтла

Математика и алгоритмы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Задачи дискретной оптимизации на моей практике встречаются не часто, но решение именно таких задач делает бизнес более эффективным в явном виде (уменьшаются потери материалов и времени и т.д.). В моем случае мы оптимизируем расход краски, упорядочивая очередь производственных заданий оптимальным образом. Поиск оптимального решения привел меня к задаче коммивояжера и его решению посредством частного случая метода Границ и ветвей - алгоритму Литтла. Возможно, кому-то из разработчиков придется решать подобную задачу, и мои наработки пригодятся.

1 стартмани

12.04.2018    16034    42    van_za    20    

52

Умножение больших чисел методом Карацубы

Математика и алгоритмы Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Алгоритм умножения больших чисел методом Карацубы, более эффективный, чем метод умножения в столбик.

1 стартмани

10.01.2018    9472    0    Kosmovski    10    

-2

Определение похожести строк или фраз (алгоритм нахождения расстояния Дамерау Левенштейна)

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Реализация алгоритма поиска расстояния Дамерау Левенштейна (Damerau–Levenshtein distance) для определения похожести слов или фраз.

1 стартмани

14.12.2017    15238    76    PerlAmutor    14    

47

Комбинатор. Подбор суммы из набора чисел. Обработка для 1С версии 8.х (УФ)

Математика и алгоритмы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Как следует из названия, предлагаемая обработка позволит перебрать набор чисел и выбрать те из них, которые в сумме равны заданному числу. Имеется целый ряд настроек, позволяющих проделать эту "титаническую" работу быстро и с комфортом. И если такой набор чисел существует, - он будет найден. А если существует множество таких наборов, - они тоже могут быть найдены (не все, разумеется). Ибо, полный перебор может, в зависимости от мощности набора чисел, потребовать времени, соизмеримого со временем существования Вселенной. А разве мы можем столь долго ждать?

1 стартмани

19.05.2017    28107    89    romasna    31    

12

Тестируем алгоритмы для торговых роботов срочного рынка РТС

Займы, кредит, лизинг Математика и алгоритмы Платформа 1С v8.3 Финансовые услуги, инвестиции Россия Управленческий учет Абонемент ($m)

1С может много чего. И ее возможности давно вышли за рамки изначально задуманного. В качестве такого примера решил выложить конфигурацию для тестирования простой стратегии торговли фьючерсом на пару Доллар-Рубль на срочном рынке РТС.

1 стартмани

29.04.2017    17361    14    rrider    2    

14

Задачи по программированию на 1С

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Сборник задач по программированию. Начало...

1 стартмани

18.04.2017    31387    7    Xershi    12    

7

Пополнение товара на складе по теории ограничения систем

Оптовая торговля Учет ТМЦ Математика и алгоритмы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Управленческий учет Абонемент ($m)

В статье рассматривается алгоритм пополнения склада по теории ограничений систем. Сами подходы описаны в книге Элия М. Голдратта «Я так и знал! Теория ограничений для розничной торговли».

1 стартмани

26.01.2017    23901    17    vva    6    

21

Набор математических функций

Универсальные функции Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Небольшой набор математических функций для работы с массивами чисел.

1 стартмани

12.01.2017    22741    7    SvoyakMartin    23    

22

1С+Классы. Версия-0

Разработка внешних компонент Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Разработано ООП-расширение языка 1С, включающее (но не ограничивающееся): Классы как абстрактные типы данных с элементами «переменная», «свойство», «функция», «процедура»; Интерфейсы как абстрактные классы без элементов состояния («переменная») и без привязки к реализации методов (свойств, процедур, функций) при определении; Имплементация (реализация) интерфейсов классами; - одиночное открытое наследование; Области видимости «внутренняя» (private), «экспорт» (public), «защищенная» (protected); Статические элементы классов (общие для всех экземпляров класса); Замещение (переопределение реализации) методов при наследовании – «виртуальные методы, свойства»; Сокрытие (затенение) обычных (не замещаемых) элементов при наследовании; Перегрузка процедур и функций по количеству и типам данных аргументов; Конструкторы класса; Деструктор класса; Слабые ссылки; Делегаты.

1 стартмани

28.10.2016    28150    7    IntelInside    68    

53

Генетический алгоритм для решения простой задачки

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Генетический алгоритм в решении задачи: Необходимо расставить правильно (по другому) скобки, чтобы получилось 850 (1 + 2) (3 + 4) (5 + 6) (7 + 8) (9 + 10) (11 + 12) (13 + 14) + 15

1 стартмани

26.09.2016    14708    5    eugeniezheludkov    4    

6

Мультиквайн на 1С. Курица и яйцо

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Мультиквайн - программа, выдающая текст другой программы, которая, в свою очередь, выдаёт текст первой. Теперь и на 1С.

1 стартмани

07.09.2016    11603    1    kg_am    5    

10

Еще один способ расчета остатков на каждый день в запросе

Математика и алгоритмы Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

24.04.2016    48448    63    ildarovich    23    

148

Алгоритм разбиения строки (предложения,текста) на несколько строк, с заданными длинами результирующих строк

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Представляю вашему вниманию очередной алгоритм разбиения строки на подстроки, с возможностью определения длин результирующих строк.

1 стартмани

17.03.2016    11724    2    zakkvanaxel    5    

2