Saturday, March 31, 2018

Bitwise2 vs Examer.com on solution task 18 for per bit conjunction


   
Решение задачи техникой      http://kpolyakov.spb.ru/download/bitwise2.pdf
¬Z(120) => (Z(96) => ¬A) =1
Z(120) + ¬Z(96) + ¬A =1
Z(96)^A => Z(120) =1
Z(96 or a) => Z(120) =1

Добавляем к 96 недостающие биты
120 =1111000
96   =1100000  => 1111000
================================
A(min) =  11000 (binary) = 24 (decimal)

Далее следует решение по https://examer.ru/app/inf/egenum/350/quiz

  

  

В действительности, решaется совсем другая задача

(X &120 ≠ 0) → ((X &96 ≠ 0) → (X &A ≠ 0)) ≡ 1

а именно :-

¬Z(120) => ( ¬Z(96) => ¬A) ≡ 1

Bitwise2 shut
================================
Z(120) v Z(96) v ¬A  ≡ 1
A => ( Z(120) + Z(96))  ≡ 1
(A=>Z(120) v (A=>Z(96))  ≡ 1
A(min) = 96
================================

Возвращаемся к Examer.com "out dated logic"

  Преобразуем исходное выражение, выразив импликацию через дизъюнкцию: (X &120 ≠ 0) → ((X &96 ≠ 0) → (X &A ≠ 0)) ≡

≡ ¬(X &120 ≠ 0) ∨ ¬(X &96 ≠ 0) ∨ (X &A ≠ 0) ≡

≡ (X &120 = 0) ∨ (X &96 = 0) ∨ (X &A ≠ 0).

Переведём заданные числа в двоичную систему счисления 12010 = 11110002, 9610 = 11000002.

Определим те значения X, при которых истинно выражение (X &120 = 0):
В десятичной системе     В двоичной системе
X     ∗ ∗ ∗ ∗ ∗ ∗ ∗
120     1 1 1 1 0 0 0
0     0 0 0 0 0 0 0

Расставим в этом выражении вместо символов «*» цифры 0 или 1 на тех местах, где результат побитового умножения определяется однозначно. Получим
В десятичной системе     В двоичной системе
X     0 0 0 0 ∗ ∗
120     ∗1 1 1 1 0 0 0
0     0 0 0 0 0 0 0

Числа X , удовлетворяющие выражению (X &120 = 0), в двоичной системе счисления должны иметь вид 0000 ∗ ∗∗, где вместо «*» могут стоять 0 или 1.

Теперь определим те значения X , при которых истинно выражение X &96 = 0:
В десятичной системе     В двоичной системе
X     0 0 ∗ ∗ ∗ ∗ ∗
96     1 1 0 0 0 0 0
0     0 0 0 0 0 0 0

Числа X , удовлетворяющие выражению (X &96 = 0), в двоичной системе счисления должны иметь вид 00 ∗ ∗ ∗ ∗∗, где вместо «*» могут стоять 0 или 1.

Таким образом, числа, удовлетворяющие дизъюнкции (X &120 = 0) ∨ (X &96 ≠ 0), имеют вид 00 ∗ ∗ ∗ ∗∗.

Обозначим через S минимальное множество чисел X , при котором истинно выражение (X &A ≠ 0).

Следовательно, чтобы истинным было выражение (X &120 = 0) ∨ (X &96 = 0) ∨ (X &A ≠ 0),

множество S должно состоять из элементов вида: 10 ∗ ∗ ∗ ∗∗, 01 ∗ ∗ ∗ ∗∗, 11 ∗ ∗ ∗ ∗∗.

Для найденных значений X определим те значения A, при которых истинно выражение X &A ≠ 0 (так как побитовая конъюнкция должна быть отлична от нуля, то на тех местах, где в числе X находятся 1, в числе A также должна быть хотя бы одна 1). То есть числа A должны иметь вид: 1 ∗ ∗ ∗ ∗ ∗ ∗, ∗1 ∗ ∗ ∗ ∗∗, 11 ∗ ∗ ∗ ∗∗.

Из найденных чисел A выберем наименьшее, при котором выражение X &A ≠ 0 будет истинным для всех X ∈ S. Таким числом A в двоичной системе является 1100000.

11000002 = 9610.
Ответ: 96

No comments:

Post a Comment