Имя: Пароль:
1C
1С v8
Как в СКД создать таблицу 2^N
0 peopel
 
15.02.15
05:44
Готовлюсь к олимпиаде и не понимаю, есть оптимизационная задача(о наполняемости рюкзака), для её решения нужно создать матрицу размерностью 2^N и заполнить всеми возможными вариантами перебора(00, 01..), как это сделать на самом языке я понимаю, но как это реализовать в запросе-ума не приложу. Может можно во внешний запрос подключать таблицу значений и для неё в модуле писать код, а потом к ней обратиться в запросе? Не могу ничего найти по теме. И,может у кого есть разбор заданий по олимпиаде, тоже не могу найти. Помогите, пожалуйста.
1 Лодырь
 
15.02.15
05:55
Не совсем понимаю вашу нотацию. Вы имеете в виду матрицу 2^NхN? и заполнить ее рюкзачными векторам длиной N (всего 2^N векторов)?
2 peopel
 
15.02.15
06:22
(1) Да, так, я не правильно записал? Простите, в общем сам вопрос немного в другом, хочу понять как создать таблицу, больше таблицы выборки, да и как организовать пербор без цикла я тоже не понимаю. Может с функцией ВЫБОР, но там не где задавать условия на номер итерации, потому что цикла нет
3 Лодырь
 
15.02.15
06:39
(2) например соединив таблицу из 10 записей с таблицей из 10 записей, мы получим таблицу из 100 записей. вот мы и получили таблицу больше чем изначальные таблицы выборки.
4 peopel
 
15.02.15
06:43
(3) Ок, спасибо, но ка задать определенное количество 2^NхN? И как сделать перебор?
5 hhhh
 
15.02.15
07:08
(4) наверно сделать (3) N раз
6 Лодырь
 
15.02.15
09:44
(4) Пример генерации таблицы вариантов для 5 предметов:
ВЫБРАТЬ
    ИСТИНА КАК Наличие
ПОМЕСТИТЬ НаличиеНекогоПредмета

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ЛОЖЬ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    НаличиеНекогоПредмета1.Наличие КАК Наличие1,
    НаличиеНекогоПредмета2.Наличие КАК Наличие2,
    НаличиеНекогоПредмета3.Наличие КАК Наличие3,
    НаличиеНекогоПредмета4.Наличие КАК Наличие4,
    НаличиеНекогоПредмета5.Наличие КАК Наличие5
ИЗ
    НаличиеНекогоПредмета КАК НаличиеНекогоПредмета1,
    НаличиеНекогоПредмета КАК НаличиеНекогоПредмета2,
    НаличиеНекогоПредмета КАК НаличиеНекогоПредмета3,
    НаличиеНекогоПредмета КАК НаличиеНекогоПредмета4,
    НаличиеНекогоПредмета КАК НаличиеНекогоПредмета5
7 peopel
 
15.02.15
13:17
(6) Пытался сам разобраться, но так и не смог, как это сделать для количества номенклатуры, которая задана, нужно выбирать временную таблицу количество раз, сколько строк в номенклатуре, выбираю, если просчитать сколько строк в номенклатуре, то как её выбрать столько же раз?
8 peopel
 
15.02.15
13:52
Ап
9 Лодырь
 
15.02.15
14:02
(7) Запрос строишь динамически в зависимости от заданного N по образцу.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший