Обнаружение XOR в картах Карно

Я получил следующие карты Карно, но у меня все еще есть проблемы с определением выражения для XOR из каждой таблицы.

                Table 1
                -------
                  WZ
         00    01   11   10
       -----------------------
    00 |     |    |    |  1  |
       -----------------------
    01 |  1  |    |    |     |
       -----------------------
XY  11 |     |    |    |  1  |
       -----------------------
    10 |  1  |    |    |     |
       -----------------------


                Table 2 
                -------
                   WZ
         00     01   11   10
       -----------------------
    00 |     |  1  |     |   |
       -----------------------
    01 |     |     |  1  |   |
       -----------------------
XY  11 |     |  1  |     |   |
       -----------------------
    10 |     |     |  1  |   |
       -----------------------

Это XOR, но как я могу легко вывести выражения XOR?


person Hakim Marley    schedule 08.01.2016    source источник
comment
Мне непонятно. Что вы подразумеваете под выводом выражений XOR?   -  person axelduch    schedule 09.01.2016
comment
Ну и какие выражения из вышеприведенных таблиц? Единственное, что у меня есть, это то, что они XOR. Как, скажем, в первом случае, это может быть X xor Y x or Z x or W... но я сомневаюсь, что прав   -  person Hakim Marley    schedule 09.01.2016


Ответы (4)


Я бы не исключал переменную z из выражения, потому что я думаю, что выражение ¬z·(¬x·y·¬w + ¬x·w·¬y + ¬y·¬w·x + w·y·x ) не равно (¬x·y·¬w + ¬x·w·¬y + ¬y·¬w·x + w·y·x). Это означало бы, что К-карта содержит четыре двойных единицы, но только четыре одиночных.

Я предпочел бы найти выражение в K-карте, а затем использовать законы булевой алгебры.

K-карта выражения, включающая 3 входа xor и 3 входа xnor

Для первой таблицы:

¬x·¬y·w·¬z + ¬x·y·¬w·¬z + x·y·w·¬z + x·¬y·¬w·¬z

¬z·((¬x + ¬y + w)·(¬x + y + ¬w)·(x + y + w)·(x + ¬y + ¬w))       //distributivity

¬z· (¬x + ¬y + w)·(¬x + y + ¬w)·(x + y + w)·(x + ¬y + ¬w)        //relaxed syntax

¬z· (¬x·¬x + ¬x·y + ¬x·¬w + ¬y·¬x + ¬y·y + ¬y·¬w + w·¬x + w·y + w·¬w)·
    (x·x + x·¬y + x·¬w + y·x + y·¬y + y·¬w + w·x + w·¬y + w·¬w)  //distributivity

Из-за законов г.

  • идемпотентность (например: ¬x·¬x=¬x),
  • поглощение (например:¬x + ¬x·y=¬x)
  • и дополнение (например: ¬x·x=0)

выражение эквивалентно:

¬z· (¬x                           +   0  + ¬y·¬w        + w·y +  0)·
    ( x  +                   +  0   + y·¬w +     + w·¬y +  0  )

¬z· (¬x + ¬y·¬w + w·y)·(x + y·¬w + w·¬y)     //just formatted

¬z· (¬x·x + ¬x·y·¬w + ¬x·w·¬y 
     + ¬y·¬w·x + ¬y·¬w·y·¬w + ¬y·¬w·w·¬y
     + w·y·x + w·y·y·¬w + w·y·w·¬y)          //distributivity

¬z· (  0  + ¬x·y·¬w + ¬x·w·¬y 
     + ¬y·¬w·x +     0      +      0
     + w·y·x +    0     +     0   )          //using the three laws↑ again

¬z· (¬x·y·¬w + ¬x·w·¬y + ¬y·¬w·x + w·y·x)    //how the 3-input XOR is defined

¬z· (x xor y xor w)

Для второй таблицы:

¬x·¬y·¬w·z + ¬x·y·w·z + x·y·¬w·z + x·¬y·w·z

z·((¬x + ¬y + ¬w)·(¬x + y + w)·(x + y + ¬w)·(x + ¬y + w))        //distributivity

z· (¬x + ¬y + ¬w)·(¬x + y + w)·(x + y + ¬w)·(x + ¬y + w)         //relaxed syntax

z· (¬x·¬x + ¬x·y + ¬x·w + ¬y·¬x + ¬y·y + ¬y·w + ¬w·¬x + ¬w·y + ¬w·w)·
   (x·x + x·¬y + x·w + y·x + y·¬y + y·w + ¬w·x + ¬w·¬y + ¬w·w)   //distributivity

z· (  ¬x +                      +   0  + ¬y·w +       + ¬w·y +   0 )·
   ( x  +                  +  0   + y·w +      + ¬w·¬y +   0 )

z· (¬x + ¬y·w + ¬w·y)·(x + y·w + ¬w·¬y)     //just formatted

z· (¬x·x + ¬x·y·w + ¬x·¬w·¬y
    + ¬y·w·x + ¬y·w·y·w + ¬y·w·¬w·¬y
    + ¬w·y·x + ¬w·y·y·w + ¬w·y·¬w·¬y)       //distributivity

z· (  0 + ¬x·y·w + ¬x·¬w·¬y
    + ¬y·w·x +     0    +     0
    + ¬w·y·x +     0    +     0)            //using the three laws↑ again

z· (¬x·y·w + ¬x·¬w·¬y + ¬y·w·x + ¬w·y·x)    //how the 3-input XNOR is defined

z· (x xnor y xnor w)
person Kit Ostrihon    schedule 16.06.2016

Первая таблица содержит выражение Xor:

`First table`
                       w
    \ wz          ___________
 xy  \-----------------------+
     |     |     |     |  1  |
     +-----+-----+-----+-----+
     |  1  |     |     |     | |
     +-----+-----+-----+-----+ | y
   | |     |     |     |  1  | |
 x | +-----+-----+-----+-----+
   | |  1  |     |     |     |
     +-----------------------+
            ___________
                 z

как вы могли видеть, середина таблицы (область Z) ненастоящая. то есть табличная функция:

F(Table1) = w'x'yz' + wx'y'z' + w'xy'z' + wxyz'

in binary form you could see a zero column :

F(Table) = 0010   eliminating Z    F(xor)= 001
           0100  ---------------\          010
           1110  ---------------/          111
           1000                            100
              ^--> fake

и итоговая таблица должна быть примерно такой:

`simplified xor table`
                w
      \ w 0   __1__
   xy  \-----------+
    00 |     |  1  |
       +-----+-----+
    01 |  1  |     | |
       +-----+-----+ | y    And " F = wy' + w'y " is an Xor only
   |10 |  1  |     | |      between 2 variables, right?
 x |   +-----+-----+
   |11 |     |  1  |
       +-----------+


Вторая таблица просто содержит выражение Xnor первой:

`Second Table`
F(Table2) = w'xyz + wxy'z + w'x'y'z + wx'yz
                          w
       \ wz          ___________
    xy  \-----------------------+        negation of table 2 is table 1 and vise versa
        |     |  1  |     |     |      F(Table2) = 1101    F(Table2)'= F(Table1) = 0010
        +-----+-----+-----+-----+                  1011                            0100
        |     |     |  1  |     | |                0001                            1110
        +-----+-----+-----+-----+ | y              0111                            1000
      | |     |  1  |     |     | |                   ^--> fake                       ^
    x | +-----+-----+-----+-----+         
      | |     |     |  1  |     |         
        +-----------------------+
           ^   ___________   ^
           ^        z        ^
           ^                 ^
           ^--------z'-------^

    the final table is:
                w
      \ w 0   __1__
   xy  \-----------+
    00 |  1  |     |
       +-----+-----+
    01 |     |  1  | |
       +-----+-----+ | y    And " F = w'y' + wy " is an Xnor
   |10 |     |  1  | |
 x |   +-----+-----+
   |11 |  1  |     |
       +-----------+

Всегда помните, что таблицы, содержащие зигзагообразный шаблон
, являются либо выражением Xor, либо выражением Xnor.

person Student    schedule 03.02.2016
comment
поздравляем!, вы получили первый золотой значок. Я не знаю, почему сообщество недавно отклонило мои правки. интересно, почему? вы специалист по редактированию... - person BattleTested_закалённый в бою; 29.07.2018
comment
@Mohammadreza Panahi, большое спасибо. Сначала, прежде чем прикасаться к какому-либо посту, я пытался проанализировать, что делают опытные редакторы, чтобы сделать посты более читабельными за счет правильного использования различных тегов. Конечно, я допустил некоторые ошибки, но постепенно Что можно и чего нельзя делать выявили себя по количеству одобренных и отклоненных предложений. Не принимайте это на свой счет, просто делайте то, что считаете лучшим способом выполнения работы, и каждый раз старайтесь сделать свое редактирование лучше, чем раньше -- one inch at a time! (кстати, не забудьте использовать Grammarly, чтобы облегчить себе работу) - person Student; 29.07.2018

Просто поместите копию этой карты справа от нее (или слева, без разницы), а затем выберите два наклоненных куба. Теперь мы напишем упрощенную функцию для них обоих:

(A = 1) (И) (B=0, когда C=1 и B=1, когда C=0) (ИЛИ) (A = 0) (И) (B=0, когда C=0 и B=1, когда C =1), что, наконец, дает следующее:

(A И (B XOR C)) ИЛИ (¬A AND (B XOR C))

на бумаге

person M-J    schedule 21.06.2017

Основное правило для xor заключается в том, что он дает 1, когда нечетное количество входных данных равно 1. Таким образом, в KMAP просто посмотрите, присутствует ли 1 во всех нечетных числах 1. Например, WXYZ (0010, 1110 и т. д.), если все дает 1, то в kmap есть XOR.

person mahesh waldiya    schedule 01.12.2019