Monday, December 31, 2018

Solution of the equation E(M)⊕E(N) => E(A)*¬E(M & N) ≡ 1 via the calculus of basic predicates according to E.A.Mironchick

In general we follow guidelines of technique developed in
http://kpolyakov.spb.ru/download/mea18bit.pdf

Per link mentioned above (quoting Helen A. Mironchick)
Let Et (x) be a predicate whose truth set is all x for which x & t ≠ 0.
If t is a power of two, then such a predicate will be called basic.
The basic predicate describes (fixes) a single unit in the binary notation.
Further, for brevity, the predicate Et (x) will be denoted by E(t);
we will also denote the truth set of this predicate.

(quoting ends)


Denote by {X} the binary representation of a natural number X.
The core statement of the post below  is :-

Let R, M, N be natural numbers. R is the minimum
satisfying the condition {M OR N} = {R OR {M & N}},
where "OR" is a bitwise disjunction, and "&" is a bitwise conjunction
Then the smallest A satisfying the equation
E(M)⊕E(N)=>E(A)*¬E (M & N) ≡ 1 would be equal R.


First we intend to show that, E(M) v E(N) = E(R) v E(M&N).
Notice also that everywhere below, "*" is "^".

Consider expansions in the logical sum of  basic predicates.
E (M) and E(N). All pairs of equal basic predicates will be
collapsed into one and the logical sum of such predicate pairs
will obviously give E(M&N). The logical sum of all those
remaining is exactly E (R). It remains to apply the formulas
of De Morgan.

               ¬(E(M) v E(N)) = ¬(E(R) v E(M & N))

and get the required equality below

               ¬E(M)*¬E(N) = ¬E(R)*¬E(M&N)  (1)

Bitwise2 has a familiar formula. Due to the fact that ¬E(N) = Z(N)

  Z(M)*Z(N) = Z(M OR N) = Z(R)*Z(M & N)

See :-   Solving the equation ¬Z(M)⊕¬Z(N) => ¬A*Z(M&N) ≡ 1 in the Bitwise2 technique  https://informatics-ege.blogspot.com/2018/12/zmn-am-1-bitwise2.html

Thus, ¬E(M)*¬E(N) = ¬E(R)*¬E (M & N) can be obtained
as a result of Statement 3 of http://kpolyakov.spb.ru/download/bitwise2.pdf

   Convert the original equation as follows

   E(M)⊕E(N) => E(A)*¬E(M&N) ≡ 1
   (E(M)≡E(N)) v E(A)*¬E(M&N) ≡ 1
 ¬E(M)*¬E(N) v E(M)*E(N) v E(A)*¬E(M&N) ≡ 1

    From the decomposition of M and N into basic predicates
    define the numbers REST-M and REST-N such that
    each of them has no common unit bits with M&N and in doing so
    obtain

     {REST-M} + {M & N} = {M}
     {REST-N} + {M & N} = {N}

     Consequently

     E(M) = E(REST-M) v E(M&N)
     E(N) = E(REST-N) v E(M&N)

Apply formula (1) to ¬E(M)*¬E(N):-

   ¬E(R)*¬E(M&N) v (E(REST-M) v E(M & N))*(E(REST-N) v E(M&N)) v
       v E(A)*¬E(M&N) ≡ 1
   ¬E(R)*¬E(M&N) v E(REST-M)*E(REST-N) v E (M&N) v
       v E(A)*¬E(M&N) ≡ 1
   ¬E(R) v E(REST-M)*E(REST-N) v E(M&N) v E(A)≡ 1
  
    Thus A (min) = R

The rest is not critical for the core result
already obtained, but makes things quite clear
Here we rely the duality between the calculus
of basic predicates and Bitwise2 to make sure
that ∃ x : E(REST-M)(x)*E(REST-N)(x) = False

E(REST-M)*E(REST-N) = ¬Z(REST-M)*¬Z(REST-N)
¬Z(REST-M)*¬Z(REST-N) = ¬(Z(REST-M) v Z(REST-N))

∃ x : Z(REST-M)(x) v Z(REST-N)(x) =True
∃ x : ¬(Z(REST-M)(x) v Z(REST-N)(x)) = ¬Z((REST-M)(x)&(REST-M)(x)) = ¬Z(0)
¬Z(0) = ¬True = False


Finally we get ∃ x : E(REST-M)(x)*E(REST-N)(x)=False
So, in fact:-

 ∀ х :  ¬E(R)(x)*¬E(M&N)(x) v (E(REST-M)(x) v E(M & N))(x)*(E(REST-N)(x) v E(M&N)(x)) v E(A)(x)*¬E(M&N)(x) = 1

means that
 
   ¬E(R)*¬E(M&N) v E (M&N) v E(A)*¬E(M&N) ≡ 1
   ¬E(R) v E(M&N) v E(A)≡ 1


Links
1. http://kpolyakov.spb.ru/download/mea18bit.pdf

Friday, December 28, 2018

Решение уравнения E(M)⊕E(N) => E(A)*¬E(M&N) ≡ 1 используя исчисление базисных предикатов (Е.А.Мирончик)

****************************
Обновлено 06.03.2019
****************************
В целом мы следуем технике, разработанной в http://kpolyakov.spb.ru/download/mea18bit.pdf

Следуя ссылке, упомянутой выше (цитируя Е.А. Мирончик)
Пусть Et (x) - предикат, набор истинности которого равен всем x,
для которого x & t ≠ 0. Если t является степенью двойки, то такой предикат будет называться базовым.Базовый  предикат описывает(фиксирует) едиственную единицу в двоичной записи. 

Далее, для краткости, предикат Et(x) обозначим через E(t); 
мы также будем обозначать набор истинности этого предиката.
(цитата заканчивается)

Основной результат полученный ниже

Обозначим {X} двоичноe представлении натурального числа X.
Пусть R,M,N - натуральные числа. R - минимальное,
удовлетворяющее условию {M OR N} = {R OR {M&N}} ,
где OR -побитная дизъюнкция, а & - побитная конъюнкция
Тогда наименьшее А , удовлетворяющее уравнению
E(M)⊕E(N) => E(A)*¬E(M&N) ≡ 1 равно R.

1. Покажем что, E(M) v E(N) = E(R) v E(M&N). Всюду ниже "*" есть "^".

Рассмотрим разложения в сумму (логическую) базисных предикатов
E(M) и E(N). Все пары равных базисных предикатов, будут свернуты в один и сумма (логическая) такого рода пар предикатов даст очевидно E(M&N) .
Сумма (логическая) всех оставшихся есть в точности E(R).
Остается применить формулы Де Моргана
               ¬(E(M) v E(N)) = ¬(E(R) v E(M&N))
и получить требуемое ниже равенство
               ¬E(M)*¬E(N) = ¬E(R)*¬E(M&N)   (1)

На диалекте Bitwise2 - это хорошо знакомая формула
В силу того , что  ¬E(N)=Z(N)

              Z(M)*Z(N)=Z(M OR N)=Z(R)*Z(M&N)

Смотри :-
Решение уравнения ¬Z(M)⊕¬Z(N)=> ¬A*Z(M&N) ≡ 1 в технике Bitwise2 

Таким образом, ¬E(M)*¬E(N) = ¬E(R)*¬E(M&N) можно получить
и как следствие Утверждения 3 из
http://kpolyakov.spb.ru/download/bitwise2.pdf

   Преобразуем исходное уравнение, как следует ниже

         E(M)⊕E(N) => E(A)*¬E(M&N) ≡ 1
         (E(M)≡E(N)) v E(A)*¬E(M&N) ≡ 1
       ¬E(M)*¬E(N) v E(M)*E(N) v E(A)*¬E(M&N) ≡ 1  

    Из разложения М и N по базисным предикатам
    определим числа REST-M и REST-N такие,что
    каждое из них не имеет общих единичных битов
    с M&N и при этом

     {REST-M} + {M&N} = {M}
     {REST-N} +  {M&N} = {N}

     следовательно

     E(M) = E(REST-M) v E(M&N)
     E(N) = E(REST-N) v E(M&N)

     Применим формулу (1) к ¬E(M)*¬E(N) :-

   ¬E(R)*¬E(M&N) v (E(REST-M) v E(M&N))*(E(REST-N) v E(M&N)) v
       v E(A)*¬E(M&N) ≡ 1
   ¬E(R)*¬E(M&N) v E(REST-M)*E(REST-N) v E(M&N) v
       v E(A)*¬E(M&N) ≡ 1
   ¬E(R) v E(REST-M)*E(REST-N) v E(M&N) v E(A)≡ 1    

**************   
Теорема 1
**************
Для истинности ∀ x: E(k)(x) => E(m)(x) необходимо
и достаточно, чтобы набор единичных битов "k"
полностью входил в набор единичных битов "m"

Ниже, мы собираемся использовать Теорему 1, где
это является необходимым по-умолчанию
Обозначим,$(X) набор единичных бит в X.
Преобразуем последнее уравнение следующим образом

(E(R) => E(REST-N))*(E(R) => E(REST-N)) v
       v (E(R) => E(M&N)) v (E(R) => E(A)) ≡ 1

Присвоим значение A(min) = R и рассмотрим любое A < A(min)

  ∃ j: (j! ∈ $ (A))*(j ∈ $ (R)) = 1

Теперь нашей  целью является доказать, что для любого
A < A(min) существует целое число y = y(A), которое дает

(E(R) => E(REST-N))*(E (R) => E(REST-N)) v
       v (E(R) => E(M & N)) v (E(R) => E(A))(y(A)) = 0


Установим единичный бит на место "j" в y = y(A)
В силу j ∈ $ (R) это j !∈ $ (M&N). Остальные биты "у"
установим нулевыми.

Заметим,что "j" также не принадлежит хотя бы одному из множеств
$(REST-M) или $(REST-N), в противном случае "j" будет принадлежать
$(М&N). Таким образом, конъюнкция ниже равна 0.

    (E(R,y) => E(REST-M,y))*(E(R,y) => E(REST-N, y)) = 0 (1)

Затем заметим, что (E(R,y) => E(M&N,y)) = 0 (2)
и (E(R,y) => E(A,y) = 0 (3)

Мы получаем в силу (1),(2) и (3)

(E(R) => E(REST-M))*(E (R) => E (REST-N)) v
  v (E(R) => E(M&N)) v (E(R) => E(A))(y) = 0


Таким образом, для любого A, меньшего чем R, существует y = y(A) такое
этот предикат, написанный выше, имеет значение 0
для числа у = у(А). Откуда А(min) есть реальный минимум А(min)


Ссылки
1. http://kpolyakov.spb.ru/download/mea18bit.pdf

Thursday, December 27, 2018

Решение уравнения ¬Z(M)⊕¬Z(N)=> ¬A*Z(M&N) ≡ 1 в технике Bitwise2

Докажем следующее утверждение , по возможности
в наибольшей общности 
Обозначим {X}  двоичноe представлении натурального числа  X.
****************
 Теорема 1
****************
Пусть R,M,N - натуральные числа. R - минимальное,
удовлетворяющее условию {M OR N} =  {R OR {M&N}},
где OR -побитная дизъюнкция, а & - побитная конъюнкция
Тогда наименьшее А , удовлетворяющее уравнению
  ¬Z(M)⊕¬Z(N)=> ¬A*Z(M&N) ≡ 1
равно R.
Запишем уравнение в виде

(
¬Z(M)≡¬Z(N)) + ¬A*Z(M&N) ≡ 1
(Z(M)≡Z(N)) + ¬A*Z(M&N) ≡ 1
¬Z(M)*¬Z(N)  + Z(M)Z(N) + ¬A*Z(M&N) ≡ 1
¬(Z(M)+Z(N)) + Z(M OR N) + ¬A*Z(M&N) ≡ 1

Поскольку ¬X + X*Y = ¬X + Y 



Далее мы хотим применить  Утверждение 8 из
http://kpolyakov.spb.ru/download/bitwise2.pdf

Для этого предикат Z(M)(х)+Z(N)(х) должен быть истинным ,
однако если он ложен  то  ¬(Z(M)(х)+Z(N)(х)) = True
и у нас нет проблем с тождеством зависящем от А.
По факту Bitwise2  постоянно работает с предикатами значение,
которых Z(M)(x) = True  if x&M=0  otherwise Z(M)(x)=False.

¬Z(M&N) + Z(R)*Z(M&N) + ¬A*Z(M&N) ≡ 1
¬Z(M&N) + Z(R)+¬A ≡ 1
(A=>Z(R)) + (A=>¬Z(M&N)) ≡ 1 

Откуда A(min) = R

Рассмотрим пример

M = 56
N = 25

56 = 111000
"&" -  побитная конъюнкция
25 = 011001
===========
24 = 011000

56 = 111000
"v" - побитная  дизъюнкция

25 = 011001
===========
57 = 111001

33 - минимальное натуральное
такое,что

33 = 100001
"v" - побитная 
дизъюнкция 
24 = 011000
============
57 = 111001

Таким образом,
для уравнения
¬Z(56)⊕¬Z(25) => ¬A*Z(24)
1 (1)
Ответ: А(min) =33

для уравнения
¬Z(24)⊕¬Z(9) => ¬A*Z(8)
1     (2)
Ответ: А(min) = 17

Wednesday, December 26, 2018

Technique of calculating basic predicates according to Е.А. Mironchick vs Bitwise2

Bellow we follow basic technique developed in
http://kpolyakov.spb.ru/download/mea18bit.pdf

***********************************************
Technique of calculation predicates
per Helen Mironchick
*********************************************** 

E(56)⊕E(25) => E(A)*¬E(24) = 1
¬E(56)*¬E(25) + E(56)*E(25) + E(A)*¬E(24) = 1

¬E(32)*¬E(16)*¬E(8)*¬E(1) +
  + (E(32) + E(16) + E(8))*(E(16) + E(8) + E(1)) + E(A)*¬E(24) = 1

¬E(32)*¬E(16)*¬E(8)*¬E(1) + E(32)*
(E(16) + E(8) + E(1)) + E(16) + E(8) +
  + E(A)*¬E(16)*¬E(8) = 1

¬E(32)*¬E(1) + E(32)*(E(16) + E(8) + E(1))
+ E(16) + E(8) + E(A) = 1
¬E(33)
E(32)*(E(16) + E(8) + E(1)) + E(16) + E(8) + E(A) = 1

Thus A(min) = 33


**************************
Bitwise2 Solution
************************** 

¬Z(56)⊕¬Z(25) => ¬A*Z(24) = 1
¬Z(56)¬Z(25) + Z(56)*Z(25) + ¬A*Z(24) = 1
¬(Z(56) + Z(25)) + Z(57) + ¬A*Z(24) = 1
¬Z(56&25) + Z(33)*Z(24)  + ¬A*Z(24) = 1


56 = 111000
& - per bit conjunction
25 = 011001
===========
24 = 011000

33 = 100001
v - per bit disjunction
24 = 011000
============
57 = 111001

56 = 111000
v - per bit disjunction
25 = 011001
===========
57 = 111000

So, we get:-

 Z(56)*Z(25) = Z(57) = Z(33)*Z(24)

Proceed as folows :

¬Z(24) + Z(33)*Z(24)  + ¬A*Z(24) = 1
¬Z(24) + Z(33)  + ¬A = 1
(A => Z(33)) + (A => ¬Z(24)) = 1
(A => Z(33)) + (A => ¬Z(24)) = 1


Thus A(min) = 33

Wednesday, December 19, 2018

Графические преимущества Техники Исчисления базисных предикатов по Е. А. Мирончик 2017

Рассмотрим задачу 207 из файла ege18.doc




(E(7)=>(E(A)=>E(54)) => ¬E(27)*E(A)*E(7) = 0
¬((E(7)=>(E(A)=>E(54)) => ¬E(27)*E(A)*E(7)) = 1
¬((¬E(7) + ¬E(A) + E(54)) => ¬E(27)*E(A)*E(7)) = 1
¬(E(7)*E(A)*¬E(54) + ¬E(27)*E(A)*E(7)) = 1
(¬E(7) + ¬E(A) + E(54))*(E(27) + ¬E(A) + ¬E(7)) = 1

Получаем систему

¬E(7) + ¬E(A) + E(54) = 1  (1)
 E(27) + ¬E(A) + ¬E(7) = 1 (2)

E(A) => E(54) + ¬E(7) = 1  (1)
E(A) => E(27) + ¬E(7) = 1  (2) 

E(54) = E(32) + E(16) + E(4) + E(2)
E(27) = E(16) + E(8) + E(2) + E(1)

(E(A)=>E(54)) + (E(A)=>E(16)) + (E(A)=>E(4)) + (E(A)=>E(2)) = 1
(E(A)=>E(16)) + (E(A)=>E(8)) + (E(A)=>E(2)) + (E(A)=>E(1)) = 1

A(min) = 2

Графическое решение

E(54) = E(32)⋃E(16)⋃E(4)⋃E(2)
E(27) = E(16)⋃E(8)⋃E(2)⋃E(1)

Образ наименьшего базисного предиката , вложенного в E(54)∩E(27)
E(2) ⊂ E(54)∩E(27)
A(min) = 2
Образ максимально объединения базисных предикатов , вложенного в E(54)∩E(27) будет
E(18)=E(16)⋃E(2) ⊂ E(54)∩E(27)
A(max) =18



Ссылки
1. http://kpolyakov.spb.ru/download/mea18bit.pdf
2. Множества в задачах с анализом битовых цепочек /Л.Л.Босова, Е.А. Мирончик//Информатика в школе /2017. No 7(130). С. 45-48.

Monday, December 17, 2018

Shooting problem 211 from ege18.doc via Technique of calculating basic predicates



We intend to solve Problem 211 from ege18.doc via  Technique of calculating  basic predicates  developed by E.A. Mironchick in manuscript http://kpolyakov.spb.ru/download/mea18bit.pdf 
Graphics using circles and a universal set in the original article allows you to implement alternative solutions quite effectively. The example below shows this very well. See also http://mapping-metod.blogspot.com/2017/08/bitwise2-18.html
for solution of same problem via Bitwise2.
See Problem 211 from ege18.doc itself
Determine the number of positive integers A such that
((x&17¬ = 0)=>((x&A¬ =0)=>(x&58¬ =0)))=>((x&8 = 0)^(x&A¬ = 0 )^(x&58 = 0))
is identically false (that is, it takes the value 0 
for any natural value of the variable x)?
 

Original source of problem 211



(E(17) => (E(A) => E(58))) => (¬E(8)*E(A)*¬E(58)) = 0
¬(E(17) => (E(A) => E(58))) + (¬E(8)*E(A)*¬E(58)) = 0
(¬E(17) + ¬E(A) + E(58)) * ¬(¬E(8)*E(A)*¬E(58)) = 1
(¬E(17) + ¬E(A) + E(58)) * (E(8) + ¬E(A) + E(58)) = 1


Hence getting system

¬E(17) + ¬E(A) + E(58) = 1  (1)
 E(8)  + ¬E(A) + E(58) = 1    (2)

E(A) => E(58) + ¬E(17) = 1  (1)
E(A) => E(58) + E(8) = 1      (2)

(E(A) => E(58)) + (E(A) => ¬E(17)) = 1  (1)
(E(A) => E(58)) + (E(A) => E(8)) = 1      (2)

Thus A(max) = 58

Now we address the question been asked in the body of problem 211
via techique of calculating basic predicates

E(58) = E(32) + E(16) + E(8) + E(2)


1. E(2) defines    2
2. E(8) defines   8
3. E(2)⋃E(8) defines 10
4. E(16) defines 16
5. E(16)⋃E(2) defines  18
6. E(16)⋃E(8) defines  24
7. E(16)⋃E(8)⋃E(2) defines  26
8. E(32) defines  32
9. E(32)⋃E(2) defines  34
10.E(32)⋃E(8) defines  40
11.E(32)⋃E(8)⋃E(2) defines  42
12.E(32)⋃E(16) defines  48
13.E(32)⋃E(16)⋃E(2) defines  50
14.E(32)⋃E(16)⋃E(8) defines  56
15.E(32)⋃E(16)⋃E(8)⋃E(2) defines  58

Answer = {2,8.10,16,18,24,26,32,34,40,42,48,50,56,58}

Let us call number of combinations of n by m C(n,m)
Then we get C(4,1)+C(4,2)+C(4,3)+C(4,4) = 4+6+4+1 = 15

References
1. Множества в задачах с анализом битовых цепочек /Л.Л.Босова, Е.А. Мирончик//Информатика в школе /2017. No 7(130). С. 45-48.

Sunday, December 16, 2018

Техника исчисления базисных предикатов по Е.А. Мирончик 2017 vs Bitwise2

Ниже мы следуем технике предложенной в работе

http://kpolyakov.spb.ru/download/mea18bit.pdf

 

   Найти нименьшее  A чтбы для целых всех положительных "x"

   (x&24 != 0)⊕(x&9 != 0) => (x&A != 0)*(x&8 =0)

 

  Выдержка из статьи mea18bit.pdf


   Пусть Et(х)–предикат, множеством истинности которого являются все x, для которых x&t≠0.Если t является степенью двойки, то такой предикат будем называть базисным.Базисный предикат описывает (фиксирует) единственную единицу в двоичной записи числа. Далее для краткости предикат Et(х) будем обозначать Е(t) также будем обозначать и множество истинности этого предиката. 
Выдержка закончена


 Код ниже использует без предупреждения  

 ¬A + A*B = (¬A + A)*(¬A + B) = ¬A + B ;  A + A*B = A


Продолжим следующим образом 

 

(E(24)*¬E(9) + ¬E(24)*E(9)) => E(A)*¬E(8) = 1
  ¬(E(24)*¬E(9) + ¬E(24)*E(9)) + E(A)*¬E(8) = 1
 (¬E(24) + E(9))*(E(24) + ¬E(9)) + E(A)*¬E(8) = 1
 ¬E(9)*¬E(24) + E(9)*E(24) + E(A)*¬E(8) = 1


Избавимся от двойного вхождения ¬E (8) в первом слагаемом

 

¬E(16)*¬E(8)*¬E(1) + E(9)*E(24) + E(A)*¬E(8) = 1
E(9)*E(24)= (E(8) + E(1))*(E(16) + E(8)) =
    = E(8) + E(8)*E(16) + E(1)*E(16) + E(1)*E(8)

Применим принцип поглощения

 

  ¬E(16)*¬E(8)*¬E(1) + (E(8) + E(1)*E(16)) +  E(A)*¬E(8) = 1
  ((¬E(16)*¬E(1) + E(A))*¬E(8) + E(8) + E(1)*E(16) = 1
  (¬E(17) + E(A)) + E(8) + E(1)*E(16) = 1


Откуда  A(min)=17

**********************

Bitwise2 Решение

**********************

¬Z(24)⊕¬Z(9) => ¬A*Z(8) = 1
¬Z(24)¬Z(9) + Z(24)*Z(9) + ¬A*Z(8) = 1
¬(Z(24) + Z(9)) + Z(25) + ¬A*Z(8) = 1
¬Z(24&9) + Z(17)*Z(8) + ¬A*Z(8) = 1

Во-первых :-
24 = 11000
& - побитная конъюнкция
9 = 01001
==========
8 = 01000

Во-вторых, так как
Z(24)*Z(9) = Z(25) = Z(17)*Z(8)

17= 10001
"v"- побитная дизъюнкция
08= 01000
===========
25 = 11001

Продолжим :-
¬Z(8) + Z(17)*Z(8) + ¬A*Z(8) = 1
¬Z(8) + Z(17) + ¬A = 1
(A=> Z(17)) + (A=> ¬Z(8)) = 1

Откуда A(min) = 17 

Другой пример
**************************************************
Техника исчисления базисных предикатов
по Е.А.Мирончик  E(56)⊕E(25) => E(A)*¬E(24) = 1

**************************************************

E(56)⊕E(25) => E(A)*¬E(24) = 1
¬E(56)*¬E(25) + E(56)*E(25) + E(A)*¬E(24) = 1

¬E(32)*¬E(16)*¬E(8)*¬E(1) +
  + (E(32) + E(16) + E(8))*(E(16) + E(8) + E(1)) + E(A)*¬E(24) = 1

¬E(32)*¬E(16)*¬E(8)*¬E(1) +
  + E(32)*(E(16) + E(8) + E(1)) + E(16) + E(8) +
  + E(A)*¬E(16)*¬E(8) = 1

¬E(32)*¬E(1) + E(32)*(E(16) + E(8) + E(1)) + E(16) + E(8) + E(A) = 1
¬E(33) + E(32)*(E(16) + E(8) + E(1)) + E(16) + E(8) + E(A) = 1
E(33) => E(32)*(E(16) + E(8) + E(1)) + E(16) + E(8) + E(A) = 1
(E(33) => E(A)) + (E(33) => E(32)*(E(16) + E(8) + E(1)) +
         + (E(33) =>E(16)) + (E(33) => E(8))  = 1

Откуда следует A(min) = 33

**************************
Bitwise2 Решение
**************************
¬Z(56)⊕¬Z(25) => ¬A*Z(24) = 1
¬Z(56)¬Z(25) + Z(56)*Z(25) + ¬A*Z(24) = 1
¬(Z(56) + Z(25)) + Z(57) + ¬A*Z(24) = 1
¬Z(56&25) + Z(33)*Z(24)  + ¬A*Z(24) = 1

56 = 111000
& - побитовая конъюнкция
25 = 011001
===========
24 = 011000

33 = 100001
v - побитовая дизъюнкция
24 = 011000
============
57 = 111001

56 = 111000
v - побитовая дизъюнкция
25 = 011001
===========
57 = 111000

Таким образом мы получаем :-
    Z(56)*Z(25) = Z(57) = Z(33)*Z(24)
Продолжаем :-

 ¬Z(24) + Z(33)*Z(24)  + ¬A*Z(24) = 1
¬Z(24) + Z(33)  + ¬A = 1
(A => Z(33)) + (A => ¬Z(24)) = 1

Откуда следует A(min) = 33 

 

Графика , использующая круги и универсальное множество , в оригинальной статье Е.А. Мирончик также позволяет реализовать  альтернативные решения достаточно эффективно.

Литература

1. Множества в задачах с анализом битовых цепочек /Л.Л.Босова, Е.А. Мирончик//Информатика в школе /2017. No 7(130). С. 45-48.

 

Saturday, December 8, 2018

Техника исчисления базисных предикатов по Е.А. Мирончик 2017 и ЕГЭ Задача 18 ( поразрядная конъюнкция )

Следуем Решение задания ЕГЭ - 18 с битовыми операциями
Если оригинальная идея  понята мной правильно, то мы конвертируем
уравнение к виду в базисных предикатах. Затем опираясь только на
основные законы булевой алгебры преобразум его к виду когда
обратная конвертация дает готовый ответ и "да" предложенная техника
представляет серьезную конкуренцию для Bitwise2, если 18-ая задача
окончательно не перекочевала в область Линейных или/и нелинейных
методов оптимизации ( то есть в чистую математику ).




*****************************************************
(x&120 ¬=0) => ((x&96 ¬=0)=>(x&A ¬=0)) = 1
*****************************************************
E(120) => (E(96) => E(A)) = 1
¬E(120) + ¬E(96) + E(A) =1
 (¬E(64)*¬E(32))*(¬E(16)*¬E(8)) + (¬E(64)*¬E(32))+ E(A) = 1

По закону поглощения

¬E(64)*¬E(32) + E(A) = 1
¬E(96) + E(A) = 1

Откуда A(min)=96

******************************************************
(x&120 ¬=0) => ((x&96=0)=>(x&A ¬=0)) = 1
******************************************************
  E(120) => (¬E(96) =>E(A)) = 1
¬E(120) + E(96) + E(A) = 1
¬E(64)*¬E(32)*¬E(16)*¬E(8) + E(96) + E(A) = 1
¬E(96)*¬E(24) + E(96) + E(A) = 1
¬E(24) + E(96)  + E(A) = 1

Откуда A(min)=24



******************************************************
(x&77 ¬=0) => ((x&12 = 0) => (x&A ¬= 0)) = 1
******************************************************
  E(77) => (¬E(12) => E(A)) = 1
¬E(77) + E(12) + E(A) = 1
¬E(64)*¬E(8)*¬E(4)*¬E(1) + E(8) + E(4) + E(A) = 1
¬E(64)*¬E(1) + E(8) + E(4) + E(A) = 1
¬E(65) + E(8) + E(4) + E(A) = 1

Откуда A(min)=65


********************************************************************
((x&28 ¬=0) + (x&45 ¬=0)) => ((x&48 =0) => (x&A ¬=0)) = 1
********************************************************************
(E(28) + E(45)) => (E(48) + E(A)) = 1
¬E(28)*¬E(45) + E(48) + E(A) = 1

¬E(28)= ¬E(16)*¬E(8)*¬E(4)
¬E(45) = ¬E(32)*¬E(8)*¬E(4)*¬E(1)

Таким образом

¬E(28)*¬E(45) = ¬E(32)*¬E(16)*¬E(8)*¬E(4)*¬E(1)
¬E(32)*¬E(16)*¬E(8)*¬E(4)*¬E(1) + E(32) + E(16) + E(A) = 1
¬E(8)*¬E(4)*¬E(1) + E(32) + E(16) + E(A) = 1
¬E(13) + E(32) + E(16) + E(A) = 1

Откуда A(min)=13

Пример 6,7,8  из http://kpolyakov.spb.ru/download/bitwise2.pdf


((E(13) + E(A)) => E(13) + ((E(A)*¬E(39)) = 1
¬E(13)*¬E(A) + E(13) + E(A)*¬E(39) = 1
¬E(A) + E(13) + E(A)*¬E(39) = 1
¬E(A) + E(13) + ¬E(39) = 1

Откуда А(max) =13


(¬E(46) + ¬E(18)) => (E(115) => ¬(E(A)) = 1
E(46)*E(18) + ¬E(115) + ¬E(A) = 1
E(46) =E(44) + E(2)
E(18) =E(16) + E(2)
E(46)*E(18) = E(44)*E(16) + E(44)*E(2) + E(2)*E(16) + E(2)
E(46)*E(18) = E(44)*E(16) + E(2)
E(44)*E(16) + E(2) + ¬E(A) = 1
(E(A)=>E(2)) + (E(A)=>E(44))*(E(A)=>E(16)) = 1
(E(A)=>E(2)) + (E(A)=>E(44&16)) =1
44=101100
&
16=010000
=======
0 =000000
(E(A)=>E(2)) + (E(A)=>E(0)) =1
(E(A)=>E(2))  =1

Откуда A(max) = 2

 
  E(23)*E(45) => E(A)*E(23) = 1
¬E(23) + ¬E(45) + E(A)*E(23) = 1
¬E(23) + ¬E(45) + E(A) = 1

Откуда A(min) = 23


 (( E(A)*¬E(12) => (¬E(A)*E(21)) + ¬E(21)*¬E(12) = 1
¬E(A) + E(12) + ¬E(A)*E(21) + ¬E(21)*¬E(12) = 1
¬E(A) + E(12) + ¬E(21)*¬E(12) = 1
¬E(A) + E(12) + ¬E(21) = 1

Откуда А(max) =12
Сравни с решением в файле ege18.doc средствами Bitwise2


Monday, December 3, 2018

Bitwise2 extended functionality


Down here we sequentially apply

¬A + A*B = (¬A + A)*(¬A + B) = ¬A + B
 A + ¬A*B = (A + ¬A)*(A + B) = A + B

********************************************************************
(x&248 ¬= 152)v(x&252 = 156)v(x&250 = 154)v(x&A = 0) = 1
********************************************************************
252 = 11111100
156 = 10011100
248 = 11111000
152 = 10011000
250 = 11111010
154 = 10011010

(x&248 ¬= 152) = ¬Z(96) + Z(128) + Z(16) + Z(8)
(x&252 =  156)  =  Z(96)*¬Z(128)*¬Z(16)*¬Z(8)*¬Z(4)
(x&250 =  154)  =  Z(96)*¬Z(128)*¬Z(16)*¬Z(8)*¬Z(2)

¬Z(96) + Z(128) + Z(16) + Z(8) + Z(96)*¬Z(128)*¬Z(16)*¬Z(8)*¬Z(4)
       + Z(96)*¬Z(128)*¬Z(16)*¬Z(8)*¬Z(2) + A = 1

Converting Z(96)*¬Z(128)*¬Z(16)*¬Z(8)*¬Z(4) and get
¬Z(96) + Z(128) + Z(16) + Z(8) entries like before run (1)
¬Z(96) + Z(128) + Z(16) + Z(8) + ¬Z(4)
       + Z(96)*¬Z(128)*¬Z(16)*¬Z(8)*¬Z(2)  + A =  1

Converting Z(96)*¬Z(128)*¬Z(16)*¬Z(8)*¬Z(2) and get
¬Z(96) + Z(128) + Z(16) + Z(8) entries like before run (2)
¬Z(96) + Z(128) + Z(16) + Z(8) + ¬Z(4) + ¬Z(2)  + A =  1

Now we are ready to apply De Morgan rules :-
     ¬(Z(96)*Z(4)*Z(2)) + Z(128) + Z(16) + Z(8) + A = 1

Finally getting done
Z(102) => Z(128) + Z(16) + Z(8) + A = 1
(Z(102)=>Z(128)) + (Z(102)=>Z(16)) + (Z(102)=>Z(8)) + (Z(102)=>A) = 1
Z(102) => A = 1