Я пытаюсь преобразовать результат таблицы истинности в логическое утверждение. Для тех, кто не в курсе, напишу подробно.
У меня есть вектор строки в формате, как показано ниже. Все элементы строки внутри вектора имеют одинаковую длину. Участники состоят только из -
или 0
или 1
. например, вектор v содержит 3 члена с длиной 5 для каждого члена.
string vv[] = { "--1-0" , "-1-1-" , "01-1-" };
std::vector<string> v(begin(vv), end(vv));
Каждый символ строки представляет другой элемент вектора «A» вместе с логической операцией. Например,
первый --1-0
это (A[2] && !A[4])
Я хотел бы преобразовать мой вышеуказанный вектор v
в
(A[2] && !A[4]) || (A[1] && A[3] ) || (!A[0] && A[1] && A[3])
Что я хочу сделать, так это иметь функцию с векторами v
и A
в качестве входных данных, а возврат будет выше логического оператора. Я уверен, вы заметили, что 1
— это true
, 0
— это Not true
, а -
— статус «все равно».
РЕДАКТИРОВАТЬ: я НЕ собираюсь решать таблицы правды или Kmap. У меня уже есть результат. Мой результат в формате вектора "v". Я хочу создать связь между V и A с помощью логического оператора.
Любое предложение приветствуется.
vv[] = { "-----" , "-----" , "-----" };
Тогда вы не используете никаких входных данных от A. Вы можете отменить его определение (и сказать, что вам все равно, какой результат возврата, поэтому реализация может быть true или false, как удобно), или сказать, что это должна быть ошибка, или иметь специальный возвращаемый результат, который не был ни истинным, ни ложным (возможно, само возвращаемое значение передается с помощью1
или0
или-
вместо true/false). - person HostileFork says dont trust SE   schedule 18.05.2016