У меня есть много, много и много векторов, которые мне нужны для проверки дубликатов чисел с помощью очень простой логики первого порядка.быстрое и простое программирование ограничений с использованием векторов (массивов)
Я могу использовать перекрестки, но это оказывается слишком медленным. Я думал, что могу превратить это в поразрядную проблему. Полный набор целых чисел известен, и каждый вектор/массив может быть представлен как битовый набор, но я могу найти только половину решения.
В настоящее время я использую цикл и векторное пересечение, но оно оказывается слишком медленным для количества проблем, которые мне нужно проверить.
Для простого примера, учитывая:
E: 1 2
F: 2 4
M: 1 3
N: 4 5
A: 5 6
Проблема Я пытаюсь определить, всегда больший формат:
(E || F) && (M || N) && A -> which is proven as possible by selecting F,M,A.
мне нужно проверить, если выше можно без дубликаты.
Есть ли средство для изучения векторов/массивов, таких как более 9 миллионов циклов? Являются ли библиотеки ограничений единственной возможностью?
В попытке уточнить:
контейнеры станд :: вектор.
Векторы содержат любое целое число.
Мне нужно было бы изучить их проблему по проблеме, чтобы идентифицировать полный набор целых чисел.
Использование условной логики, заданной для выбора целых векторов, произойдет дубликат? Используемые условные операторы всегда будут только «И» и «ИЛИ». Проблема, которую я перечислил, - это упрощенная версия, но на самом деле это все. Он просто отличается по размеру.
Результат, о котором я забочусь меньше ... это может быть булев, другой вектор потенциальных дубликатов и т. Д. Я пытаюсь найти правильный инструмент для работы, а не для спасения.
В моем текущем настроении я решил бы это, проанализировав для принудительных элементов, таких как A, и удалив все, с чем он пересекается ... (в этом случае N ... тогда я бы снова начал цикл и выполнял тот же процесс с M, который теперь является принудительным выбором и удалением E, оставив меня с F.
Ваша проблема плохо указана. Если 'E' является вектором, чем' (E || F) 'является недопустимым выражением. Измените свой вопрос и уточните алгоритмические требования более точно и тщательно. Что такое полная инвентаризация _input_ алгоритма. Каков алгоритм, ожидаемый _output_. Какова точная взаимосвязь между входом и выходом? –
Я думаю, что он имеет в виду получить некоторый набор векторов чисел и выражение их отношения (в форме он не указал, поэтому я предполагаю, что он жестко запрограммирован), и он хочет выбрать набор, у которого нет дублирующихся чисел, - в его выражение expression говорит, что выбрал '(либо E, либо F), и (либо M, либо N), и A' таким образом, чтобы выбранные векторы не содержали дубликатов. –
Да, J_Kubik, это именно то, что я имел в виду :) – cgr