Cheery
@Cheery

Как должен выглядеть алгоритм цикла с таким условием?

Путём перебора возможных значений надо доказать, что для любых величин А, В, С типа Bool все пары логических выражений ниже эквивалентные, имеют одинаковые значения:

1) A OR В И В OR А;
2) A AND ВИ В AND A;
3) (A OR В) OR С И A OR С;
4) (A AND В) AND С И A AND (В AND С);
5) A AND (A OR В) И А;
6) A OR (A AND В) И А;
7) A AND (В OR С) И (A AND В) OR (A AND С);
8) A OR (В AND С) И (A OR В) AND (A OR С).

Если можно, то очень хотелось бы получить разъяснение использованных функций для чайника.
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 3
freeExec
@freeExec
Участник OpenStreetMap
Да тут 2^3 = 8 вариантов. Перебрать их все и делов.
Если уж прям хочется цикла, то использовать первые три бита двоично представление первых 8 цифр, которые дадут вам все варианты значений А, Б и С. Но если вы этого не понимаете, то зачем оно вам.
Ответ написан
Комментировать
@Elsper
В общих чертах как-то так.
Основная идея создать простой булевый массив из двух значений, чтобы собственно можно было с помощью его индекса "перебирать" любые величины A B и C
bool check = true;
 bool[] b = new bool[2] { true, false };
 for (int i1 = 0; i1 < 2; i1++)
 for (int i2 = 0; i2 < 2; i2++)
 for (int i3 = 0; i3 < 2; i3++)
 {
     //Подставить тут требуемые сравнения.
     bool result1 = (b[i1] || b[i2]);
     bool result2 = (b[i2] || b[i1]);

     if (result1 != result2) check = false;
 }

Где на выходе смотреть на check. Если он осталься true значит пары эквиваленты

Закодировать сравнения для result1 и result2 конечно придется самому.
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
1) A OR В И В OR А;
2) A AND ВИ В AND A;
3) (A OR В) OR С И A OR С;
4) (A AND В) AND С И A AND (В AND С);

Это не надо доказывать. Это законы коммутативности и ассоциативности булевых операций AND/OR.

Даллее по тексту там - похоже на закон дистрибутивности но надо проверить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы