Задания
Версия для печати и копирования в MS Word
Тип 2 № 17320
i

Ло­ги­че­ская функ­ция F задаётся вы­ра­же­ни­ем ((xy) ∨ (yz)) ≡ ((xw) ∧ (wz)).

Дан ча­стич­но за­пол­нен­ный фраг­мент, со­дер­жа­щий не­по­вто­ря­ю­щи­е­ся стро­ки таб­ли­цы ис­тин­но­сти функ­ции F.

Опре­де­ли­те, ка­ко­му столб­цу таб­ли­цы ис­тин­но­сти со­от­вет­ству­ет каж­дая из пе­ре­мен­ных x, y, z, w.

 

Пе­ре­мен­ная 1Пе­ре­мен­ная 2Пе­ре­мен­ная 3Пе­ре­мен­ная 4Функ­ция
????????????F
01111
0101
0101

 

В от­ве­те на­пи­ши­те буквы x, y, z, w в том по­ряд­ке, в ко­то­ром идут со­от­вет­ству­ю­щие им столб­цы (сна­ча­ла  — буква, со­от­вет­ству­ю­щая пер­во­му столб­цу; затем  — буква, со­от­вет­ству­ю­щая вто­ро­му столб­цу, и т. д.). Буквы в от­ве­те пи­ши­те под­ряд, ни­ка­ких раз­де­ли­те­лей между бук­ва­ми ста­вить не нужно.

 

При­мер. Пусть за­да­но вы­ра­же­ние xy, за­ви­ся­щее от двух пе­ре­мен­ных x и y, и фраг­мент таб­ли­цы ис­тин­но­сти:

 

Пе­ре­мен­ная 1Пе­ре­мен­ная 1Функ­ция
??????F
010

 

Тогда пер­во­му столб­цу со­от­вет­ству­ет пе­ре­мен­ная y, а вто­ро­му столб­цу со­от­вет­ству­ет пе­ре­мен­ная x. В от­ве­те нужно на­пи­сать: yx.

Спрятать решение

Ре­ше­ние.

По­сколь­ку стро­ки в таб­ли­це не долж­ны по­вто­рять­ся, за­пол­ним пу­стые ячей­ки в таб­ли­це:

 

Пе­ре­мен­ная 1Пе­ре­мен­ная 2Пе­ре­мен­ная 3Пе­ре­мен­ная 4Функ­ция
????????????F
01111
01011
01001

 

Рас­смот­рим дан­ное вы­ра­же­ние. Ло­ги­че­ская функ­ция при­ни­ма­ет зна­че­ние 1, когда обе части вы­ра­же­ния при­ни­ма­ют зна­че­ния 1 или 0. Пер­вая часть вы­ра­же­ния при­ни­ма­ет зна­че­ние 1 при на­бо­рах пе­ре­мен­ных x, y, z, рав­ных со­от­вет­ствен­но 011, 110, 111. Вто­рая часть вы­ра­же­ния при­ни­ма­ет зна­че­ние 1 при на­бо­рах пе­ре­мен­ных x, z, w, рав­ных со­от­вет­ствен­но 000, 010, 011, 111. Пер­вая часть вы­ра­же­ния при­ни­ма­ет зна­че­ние 0 при на­бо­рах пе­ре­мен­ных x, y, z, рав­ных со­от­вет­ствен­но 000, 001, 010, 100, 101. Вто­рая часть вы­ра­же­ния при­ни­ма­ет зна­че­ние 0 при на­бо­рах пе­ре­мен­ных x, z, w, рав­ных со­от­вет­ствен­но 001, 100, 110, 101. За­ме­тим, что x со­от­вет­ству­ет пер­во­му столб­цу таб­ли­цы ис­тин­но­сти, а z и y  — тре­тье­му и четвёртому столб­цам таб­ли­цы ис­тин­но­сти. Зна­чит, вто­ро­му столб­цу таб­ли­цы ис­тин­но­сти со­от­вет­ству­ет w.

 

Ответ: xwzy.

 

При­ве­дем дру­гое ре­ше­ние.

Со­ста­вим таб­ли­цу ис­тин­но­сти для вы­ра­же­ния (xy) ∨ (yz)) ≡ ((xw) ∧ (wz)) вруч­ную или при по­мо­щи языка Python:

print("x y z w")

for x in range(0, 2):

for y in range(0, 2):

for z in range(0, 2):

for w in range(0, 2):

if ((x and y) or (y and z)) == ((x <= w) and (w <=z)):

print(x, y, z, w)

 

Далее вы­пи­шем те на­бо­ры пе­ре­мен­ных, при ко­то­рых дан­ное вы­ра­же­ние равно 1. В на­бо­рах пе­ре­мен­ные за­пи­шем в по­ряд­ке х, y, z, w.

По­лу­чим сле­ду­ю­щие на­бо­ры:

(0, 0, 0, 1)

(0, 1, 0, 1)

(0, 1, 1, 0)

(0, 1, 1, 1)

(1, 0, 0, 0)

(1, 0, 0, 1)

(1, 0, 1, 0)

(1, 1, 1, 1)

За­ме­тим, что име­ет­ся толь­ко один набор, со­дер­жа­щий ровно три еди­ни­цы: (0, 1, 1, 1). Этому на­бо­ру со­от­вет­ству­ет пер­вая стро­ка при­ве­ден­но­го фраг­мен­та таб­ли­цы ис­тин­но­сти. Сле­до­ва­тель­но, пер­вый стол­бец со­от­вет­ству­ет пе­ре­мен­ной x. Тогда тре­тья стро­ка фраг­мен­та таб­ли­цы со­от­вет­ству­ет на­бо­ру (0, 0, 0, 1). Сле­до­ва­тель­но, вто­рой стол­бец  — это пе­ре­мен­ная w.

Тогда вто­рая стро­ка фраг­мен­та таб­ли­цы со­от­вет­ству­ет на­бо­ру (0, 1, 0, 1). Сле­до­ва­тель­но, тре­тий стол­бец  — это пе­ре­мен­ная z, а чет­вер­тый стол­бец  — пе­ре­мен­ная y.

 

При­ве­дем ре­ше­ние Ми­ха­и­ла Глин­ско­го.

За­пол­ним пу­стые ячей­ки в таб­ли­це, как это сде­ла­но в ос­нов­ном ре­ше­нии.

Со­ста­вим таб­ли­цу ис­тин­но­сти для вы­ра­же­ния ((xy) ∨ (yz)) ≡ ((xw) ∧ (wz)) и вы­пи­шем те на­бо­ры пе­ре­мен­ных, при ко­то­рых дан­ное вы­ра­же­ние равно 1. В на­бо­рах будем за­пи­сы­вать пе­ре­мен­ные в по­ряд­ке x, y, z, w. По­лу­чим сле­ду­ю­щие на­бо­ры:

(0, 0, 0, 1)

(0, 1, 0, 1)

(0, 1, 1, 0)

(0, 1, 1, 1)

(1, 0, 0, 0)

(1, 0, 0, 1)

(1, 0, 1, 0)

(1, 1, 1, 1)

За­ме­тим, что име­ет­ся толь­ко один набор, со­дер­жа­щий ровно три еди­ни­цы: (0, 1, 1, 1). Этому на­бо­ру со­от­вет­ству­ет пер­вая стро­ка при­ве­ден­но­го фраг­мен­та таб­ли­цы ис­тин­но­сти. Сле­до­ва­тель­но, пер­вый стол­бец со­от­вет­ству­ет пе­ре­мен­ной x. Тогда тре­тья стро­ка фраг­мен­та таб­ли­цы со­от­вет­ству­ет на­бо­ру (0, 0, 0, 1). Сле­до­ва­тель­но, вто­рой стол­бец  — это пе­ре­мен­ная w.

Тогда вто­рая стро­ка фраг­мен­та таб­ли­цы со­от­вет­ству­ет на­бо­ру (0, 1, 0, 1). Сле­до­ва­тель­но, тре­тий стол­бец  — это пе­ре­мен­ная z, а чет­вер­тый стол­бец  — пе­ре­мен­ная y.

 

Для со­став­ле­ния таб­ли­цы ис­тин­но­сти можно вос­поль­зо­вать­ся про­грам­мой на языке Пас­каль:

var x,y,z,w: boolean;

begin

for x:=false to true do

  for y:=false to true do

    for z:=false to true do

      for w:=false to true do

        if((x and y) or (y and z)) = ((x<=w) and (w<=z)) then

          writeln(ord(x), ord(y),ord(z), ord(w));

end.


Аналоги к заданию № 17320: 17366 Все

Раздел кодификатора ФИПИ: 1.5.1 Вы­ска­зы­ва­ния, ло­ги­че­ские опе­ра­ции, кван­то­ры, ис­тин­ность вы­ска­зы­ва­ния