Professional Documents
Culture Documents
Збирка задатака из ОРТ 1
Збирка задатака из ОРТ 1
Електротехнички факултет
Универзитета у Београду,
Катедра за РТИ
Д. Драшковић,
Ж.Станисављевић
Верзија 1.1
(03.03.2011.)
Такође, уколико нам је још нека грешка у решењима задатака промакла, било би лепо да
нам јавите путем мејлова: zarko@etf.rs и draskovic@etf.rs, како би наредне генерације
студената вежбали задатке из збирке са исправљеним решењима.
Хвала унапред!
предметни асистенти,
Жарко Станисављевић,
Дражен Драшковић
Задатак 15
(Окт ‘05) Написати СКНФ прекидачке функције три променљиве дате са f(1) = {0XX, X01}.
───────────────
Грешка у решењу у збирци:
Утврђена је грешка у решењу задатка #15 приликом развијања кубова, па је након тога
комплетно решење задатка неисправно.
Решење:
Потребно је наћи СКНФ прекидачке функције, а то је најлакше урадити тако што ћемо
пронаћи на којим векторима функција има вредност 0. У задатку је дат скуп вектора на
којима функција има вредност један f(1) = {0XX, X01}. Потпуним развијањем ових кубова
можемо одредити све векторе на којима функција има вредност један:
f(1) = {000, 001, 010, 011, 101}
f(1) = {0, 1, 2, 3, 5}
Сада можемо да одредимо где функција има вредност нула, јер је ова прекидачка
функција потпуно дефинисана, па има вредност нула на свим векторима на којима нема
вредност један:
f(0) = {4, 6, 7}
f(x1 , x 2 , x 3 ) ( x1 x2 x3 ) ( x1 x2 x3 ) ( x1 x2 x3 )
Задатак 19
Решење:
а) Функције су једнаке на оним векторима где имају исте вредности, односно где важи да
је f(0) = g(0) и f(1) = g(1). Да бисмо то урадили, морамо да нађемо скупове вектора за f(0) и
f(1), а након тога и за g(0) и g(1).
Како је функција f(x1, x2, x3, x4) дата у облику КНФ, лакше је одредити коњуктивни покривач
ове функције, односно где има вредност нула:
f(0) = {01X1, 101X, 10X0, 00XX}
Потпуним развијањем ових кубова, можемо одредити све векторе на којима функција
f(x1, x2, x3, x4) има вредност нула:
01X1 => 0101, 0111
101X => 1010, 1011
10X0 => 1000, 1010
00XX => 0000, 0001, 0010, 0011
f(0) = {0000, 0001, 0010, 0011, 0101, 0111, 1000, 1010, 1011}
f(0) = {0, 1, 2, 3, 5, 7, 8, 10, 11}
Када одредимо f(0), морамо да одредимо и f(1), јер ће нам бити потребно да одредимо да
ли су функције f и g једнаке:
f(1) = {4, 6, 9, 12, 13, 14, 15}
Како је функција g(x1, x2, x3, x4) дата у облику ДНФ, лакше је одредити дисјунктивни
покривач ове функције, односно где има вредност један:
g(1) = {0XX1, 00XX, X0X0, 101X}
Потпуним развијањем ових кубова, можемо одредити све векторе на којима функција
g(x1, x2, x3, x4) има вредност један:
0ХХ1 => 0001, 0011, 0101, 0111
00ХХ => 0000, 0001, 0010, 0011
Х0Х0 => 0000, 0010, 1000, 1010
101Х => 1010, 1011
g(1) = {0000, 0001, 0010, 0011, 0101, 0111, 1000, 1010, 1011}
g(1) = {0, 1, 2, 3, 5, 7, 8, 10, 11}
Када одредимо g(1), морамо да одредимо и g(0), јер ће нам бити потребно да одредимо
да ли су функције f и g једнаке:
g(0) = {4, 6, 9, 12, 13, 14, 15}
Упоређивањем можемо утврдити да скупови вектора f(0) и g(0), као и f(1) и g(1), нису
једнаки, па за ове функције кажемо да су различите:
f(1) g(1)
f ( x1 , x 2 , x 3 , x 4 ) g ( x 1 , x 2 , x 3 , x 4 )
f(0) g(0 )
Задатак 23
g(x 1 , x 2 , x 3 , x 4 ) x1 x 4 + x 2 x 3 + x1 x 2
───────────────
Решење:
а) Функција f дата у КНФ облику, па се развијањем кубова добија скуп вектора на којима
ова функција има вредност нула. На преосталим векторима функција има вредност један.
f(0) = {XX00, 1XX0, X10X, 00XX}
f(0) = {0000, 0100, 1000, 1100, 1010, 1110, 0101, 1101, 0001 0010, 0011}
f(0) = {0, 1, 2, 3, 4, 5, 8, 10, 12, 13, 14}
f(1) = {6, 7, 9, 11, 15}
Функција g је дата у ДНФ облику, па се развијањем кубова добија скуп вектора на којима
ова функција има вредност један, док ће на преосталим векторима имати вредност нула.
g(1) = {1XX0, X10X, 00XX}
g(1) = {1000, 1010, 1100, 1110, 0100, 0101, 1101, 0000, 0001, 0010, 0011}
g(1) = {0, 1, 2, 3, 4, 5, 8, 10, 12, 13, 14}
g(0) = {6, 7, 9, 11, 15}
Ако се упореде g(0) и f(0), као и g(1) и f(1) примећује се да за ове две функције не постоји
ни један вектор на којем су оне једнаке, па се добија да важи:
g( x 1 , x 2 , x 3 , x 4 ) f ( x 1 , x 2 , x 3 , x 4 )
Потпуним развијањем ових кубова, можемо одредити све векторе на којима функција f
има вредност нула:
f(0) = {0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 0010, 0011, 0110, 0111, 1010, 1011,
1110, 1111, 0101, 0111, 1101, 1111}
f(0) = {0, 1, 2, 3, 4, 5, 6, 7, 2, 3, 6, 7, 10, 11, 14, 15, 5, 7, 13, 15}
На крају добијамо СКНФ облик функције f, као производ потпуних сума вектора на којима
функција има вредност нула:
f ( x1 , x2 , x3 , x4 ) ( x1 x2 x3 x4 )( x1 x2 x3 x4 )( x1 x2 x3 x4 )( x1 x2 x3 x4 )
( x1 x2 x3 x4 )( x1 x2 x3 x4 )( x1 x2 x3 x4 )( x1 x2 x3 x4 )( x1 x2 x3 x4 )
( x1 x2 x3 x4 )( x1 x2 x3 x4 )( x1 x2 x3 x4 )( x1 x2 x3 x4 )
Задатак 31
(К1 ‘08) а) Дате су функције f(x1, x2, x3, x4) и g(x1, x2, x3, x4). Користећи кубове одредити скуп
вектора на којима се ове две функције разликују.
f(x1, x 2 , x 3 , x 4 ) x1 x 3 x 4 + x1 x 2 x 3 + x 2 x 3 x 4 + x1 x 2 + x1 x 4
g(x 1, x 2 , x 3 , x 4 ) (x1 + x 2 + x 4 ) (x 2 + x 3 + x 4 ) (x1 + x 3 + x 4 )
б) Одредити СКНФ прекидачке функције f(x1, x2, x3, x4) :
f(x1, x 2 , x 3 , x 4 ) (x1 + x 2 x 3 ) (x 2 + x 3 x 4 ) + x 3 + x 2
───────────────
Грешка у решењу у збирци:
У решењу задатка #31, под б), није добро урађен поступак решавања.
Решење:
б) Сређивање израза почињемо применом Де Морганове теореме на (x 2 + x 3 x 4 ) :
f(x1 , x 2 , x 3 , x 4 ) (x1 + x 2 x 3 ) (x 2 + x 3 x 4 ) + x 3 + x 2
f(x1 , x 2 , x 3 , x 4 ) (x1 + x 2 x 3 ) x 2 x 3 x 4 + x 3 + x 2
f(x1, x 2 , x 3 , x 4 ) (x1 + x 2 x 3 ) x 2 (x 3 x 4 ) + x 3 + x 2
Потпуним развијањем ових кубова, можемо одредити све векторе на којима функција
f(x1, x2, x3, x4) има вредност један:
ХХ0Х => 0000, 0001, 0100, 0101, 1000, 1001, 1100, 1101
10Х0 => 1000, 1010
Х1ХХ => 0100, 0101, 0110, 0111, 1100, 1101, 1110, 1111
Када одредимо f(1), морамо да одредимо и f(0), јер нам је то неопходно за одређивање
СКНФ прекидачке функције f:
f(0) = {2, 3, 11}
СКНФ прекидачке функције добијамо као производ потпуних сума:
f(x1 , x 2 , x 3 , x 4 ) (x1 x 2 x 3 x 4 ) (x1 x 2 x 3 x 4 ) (x1 x 2 x 3 x 4 )
Задатак 32
(К1-К2 ‘07) а) Дате су функције f(x1, x2, x3, x4) и g(x1, x2, x3, x4) које су дефинисане на свим
векторима осим на {4, 5, 13}. Наћи скуп вектора на којима се ове две функције разликују
уколико изрази за векторе на којима су дефинисане гласе:
f(x1 , x 2 , x 3 , x 4 ) x1x 2 x 4 + x 3 x 4 + x 2 x 4
g(x 1 , x 2 , x 3 , x 4 ) (x1 + x 2 ) (x1 + x 3 + x 4 ) (x 2 + x 4 )
б) Одредити скуп вектора на којима следећа функција има вредност 0:
f(x1 , x 2 , x 3 , x 4 ) (x1 + x 3 + (x 2 + x 3 )) (x 2 + (x 3 + (x1 + x 4 ) (x1 + x 3 )))
───────────────
Грешка у решењу у збирци:
У решењу задатка #32, под а), није добро урађен један део решења за функцију
g(x1, x2, x3, x4). Свуда где пише g(1) треба ставити g(0), јер је функција дата у КНФ облику
а на самом крају где пише g(0) треба ставити g(1). Такође, други куб у скупу вектора за
g(0) није 1Х1Х него 1Х10 !
Решење:
б) Функција f(x 1 , x 2 , x 3 , x 4 ) x 1 x 2 x 4 + x 3 x 4 + x 2 x 4 је дата у ДНФ облику. Развијањем
кубова одређују се вектори на којима ова функција има вредност 1. Потребно је водити
рачуна да постоје вектори на којима се функција не јавља, тако да се скуп вектора на
којима функција има вредност 1 добија као разлика скупова на којима би функција имала
вредност 1 да је потпуно дефинисана и скупа вектора на којима се функција не јавља.
f(1) = {00X0, XX00, X1X1}/f(b)
f(1) = {00X0, XX00, X1X1}/{4, 5, 13}
f(1) = {0000, 0010, 0000, 0100, 1000, 1100, 0101, 0111, 1101, 1111}/{4, 5, 13}
f(1) = {0, 2, 4, 5, 7, 8, 12, 13, 15}/{4, 5, 13}
f(1) = {0, 2, 7, 8, 12, 15}
f(0) = {1, 3, 6, 9, 10, 11, 14}
Скуп вектора на којима се ове две функције разликују, будући да је скуп недефинисаних
вектора идентичан за обе ове функције, може се одредити на следећи начин:
(g(0) / f (0)) (f (0) / g(0)) (g(1) / f (1)) (f (1) / g(1))
односно разликују се само на вектору {0111}.
Задатак 34
(Сеп ‘07) а) Дате су функције f(x1, x2, x3, x4) и g(x1, x2, x3, x4) које су дефинисане на свим
векторима осим на {6, 14, 15}. Наћи скуп вектора на којима се ове две функције разликују
уколико изрази за векторе на којима су дефинисане гласе:
f(x1 , x 2 , x 3 , x 4 ) x 2 x 3 x 4 + x 1 x 2 + x 2 x 3 + x 1 x 2 x 4
g(x 1 , x 2 , x 3 , x 4 ) (x 1 + x 3 + x 4 ) (x 1 + x 2 ) (x 2 + x 4 )
f(x1 , x 2 , x 3 , x 4 ) x1 x 2 x 3 + x 2 x 3 x 4 + x1 x 3 x 4 + x1
───────────────
Грешка у решењу у збирци:
У решењу задатка #34, под а), погрешно је написан последњи куб у скупу вектора f(1).
Уместо 10Х1 треба да стоји 10Х0, па и наставак решења задатка изгледа другачије.
У решењу задатка #34, под б), уместо 1000Х, треба да стоји 100Х. Наставак решења је
исправан.
Решење:
а) Функције се разликују на оним векторима где имају различите вредности, односно где
важи да је f(0)=g(1) и f(1)=g(0). Да бисмо то урадили, можемо за сваку функцију да
одредимо вредности на свим векторима, а затим да их упоредимо. Како је функција
f(x1,x2,x3,x4) дата у облику ДНФ, лакше је одредити дисјунктивни покривач ове функције, а
како је функција g(x1,x2,x3,x4) дата у облику КНФ, лакше је одредити коњуктивни покривач
ове функције. Према описаним правилима на вежбама, за представљање нормалних
форми помоћу кубова добијамо:
Потпуним развијањем ових кубова, можемо одредити све векторе на којима функција f
има вредност један. Из овог скупа вектора, треба само уклонити оне векторе на којима се
функција не јавља (f(b)) као што је дефинисано у тексту задатка:
f(1) = {0000, 1000, 0100, 0101, 0110, 0111, 0110, 0111, 1110, 1111, 1000, 1010}/f(b)
f(1) = {0, 8, 4, 5, 6, 7, 6, 7, 14, 15, 8, 10}/{6, 14, 15}
f(1) = {0, 4, 5, 7, 8, 10}
Када одредимо где функција f има вредност један, морамо да одредимо и где та функција
има вредност нула:
f(0) = {1, 2, 3, 9, 11, 12, 13}
Исти поступак примењујемо и за функцију g:
g(0) = {011X, X000, 0X01, 1XXX}/g(b)
Потпуним развијањем ових кубова, можемо одредити све векторе на којима функција g
има вредност нула. Из овог скупа вектора, треба само уклонити оне векторе на којима се
функција не јавља (g(b)) као што је дефинисано у тексту задатка:
g(0) = {0110, 0111, 0000, 1000, 0001, 0101, 1000, 1001, 1010, 1011,
1100, 1101, 1110, 1111}/g(b)
g(0) = {6, 7, 0, 8, 1, 5, 8, 9, 10, 11, 12, 13, 14, 15}/{6, 14, 15}
g(0) = {0, 1, 5, 7, 8, 9, 10, 11, 12, 13}
Када одредимо где функција g има вредност нула, морамо да одредимо и где та функција
има вредност један:
g(1) = {2, 3, 4}
б) Како је функција f дата у облику ДНФ, лакше је одредити дисјунктивни покривач ове
функције, па тек након тога одредити СКНФ. Према описаним правилима на вежбама, за
представљање нормалних форми помоћу кубова добијамо:
f(1) = {100X, X111, 1X10, 0XXX} = {1000, 1001, 0111, 1111, 1010, 1110, 0000, 0001, 0010,
0011, 0100, 0101, 0110, 0111}
f(1) = {8, 9, 7, 15, 10, 14, 0, 1, 2, 3, 4, 5, 6, 7}
f(1) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 15}
Сада је потребно одредити f(0), а пошто је ова прекидачка функција потпуно дефинисана
(нема f(b)), функција f има вредност нула на свим векторима на којима нема вредност
један:
(ЈунСИ ‘07) а) Помоћу кубова одредити скуп вектора на којима се следеће две функције
разликују.
───────────────
Грешка у решењу у збирци:
Функција има вредност нула и на вектору са индексом 15, што је у решењу задатка
изостављено. Наставак решења је исправан.
Решење:
Потребно је одредити f(0), а пошто је ова прекидачка функција потпуно дефинисана (нема
f(b)), функција f има вредност нула на свим векторима на којима нема вредност један:
g1(x 1, x 2 , x3 , x 4 ) x1 x 2
g2(x 1 , x 2 , x 3 , x 4 ) x 3 x 4
g3(x 1 , x 2 , x 3 , x 4 ) x1 x 3
Задатак 56
У решењу задатка #56, под г), погрешно је нацртана Карноова карта и написано решење.
Решење:
б) Функција из поставке задатка је дата у облику КНФ. Развијањем кубова добија се скуп
вектора над којима је вредност ове функције једнака нули. Скуп вектора над којима
функција нема вредност нула, је скуп вектора над којима функција има вредност један.
f(1) {11X , X 11,001}
f(0) {110,111,011,001}
f(0) {1,3,6,7}
f(1) {0,2,4,5}
x 1x 2
x3 00 01 11 10
0 1 1 1
1 1
f(x 1 , x 2 , x 3 , x 4 ) x 2 x 3 x 4 x 1 x 3 x 4 x 1 x 2 x 4 x 1 x 2 x 3 x 1 x 2 x 3 x 4
───────────────
Грешка у решењу у збирци:
У решењу задатка #60, недостаје један куб 100Х у скупу f(1) и недостаје вектор са
индексом 12 у скупу f(0).
Решење:
Функција f је дата у облику ДНФ, па ћемо одредити где та функција има вредност један,
према правилима за представљање нормалних форми помоћу кубова:
f(1) = {X011, 1X01, 00X1, 100Х, 0100}
f(1) = {0011, 1011, 1001, 1101, 0001, 0011, 1000, 1001, 0100}
f(1) = {3, 11, 9, 13, 1, 3, 8, 9, 4}
f(1) = {1, 3, 4, 8, 9, 11, 13}
Сада је потребно одредити f(0), а пошто је ова прекидачка функција потпуно дефинисана
(нема f(b)), функција f има вредност нула на свим векторима на којима нема вредност
један:
f(0) = {0, 2, 5, 6, 7, 10, 12, 14, 15}
x x2
x 3x 4 1 00 01 11 10
00 0 0
01 0
11 0 0
10 0 0 0 0
f(x1 , x 2 , x 3 , x 4 ) ( x3 x4 )( x 2 x3 )( x1 x 2 x4 )( x1 x2 x4 )( x1 x 2 x 4 )
Задатак 64
(Јун ‘05) Дата је функција f(x1, x2, x3, x4) дефинисана скуповима индекса:
f(1) = {6, 7, 11, 12, 13, 14, 15}, f(b) = {3, 4, 9}. Користећи Карноове карте наћи бар једну
минималну KНФ и ДНФ дате функције.
───────────────
Грешка у решењу у збирци:
У решењу задатка #64, код ДНФ појављује се једна фигура вишка и недостаје једно поље
b у Карноовој карти.
Решење:
x x2
x 3x 4 1 00 01 11 10
00 0 b 0
01 0 0 b
11 b
10 0 0
f(x1 , x 2 , x 3 , x 4 ) (x 1 x 3 )(x 2 x 4 )
f(x1, x 2 , x 3 , x 4 ) x1 x2 x3 x4 x2 x3
Задатак 66
б) ДНФ функције f(x1, x2, x3, x4) задате скупом индекса f(0) = {4, 7, 9, 11, 14, 15} и
f(b) = {3, 5, 6, 12}.
───────────────
Грешка у решењу у збирци:
У решењу задатка #66, под а), код Карноове карте уписана је вредност 0 у поље са
индексом 13. То повлачи неисправно решење задатка.
Решење:
а) f(1) = {0X10, X000, 1101, 00X0, X110, 111X}
f(1) = {0010, 0110, 0000, 1000, 1101, 0000, 0010, 0110, 1110, 1110, 1111} =
x1x2
x3x4 00 01 11 10
00 0 0
01 0 0 0
11 0 0 0
10 0
f(x1 , x 2 , x 3 , x 4 ) ( x1 x4 )( x2 x3 x4 )( x2 x4 )( x1 x2 x3 )
Задатак 71
а) КНФ функције
f(x1 , x 2 , x 3 , x 4 ) x 1 x 3 x 4 x 2 x 3 x 4 x 1 x 2 x 3 x 4 x 1 x 2 x 4 x 2 x 3 x 4 x 1 x 2 x 3
б) ДНФ функције f(x1, x2, x3) задате скупом индекса f(0) = {0, 1, 4, 7}
в) (30) КНФ функције f(x1, x2, x3, x4) задате скупом индекса f(1) = {4, 7, 9, 11, 14, 15} и f(b) =
{3, 5, 6, 12}.
Решење:
г) После сређивања израза применом правила Булове алгебре, Карноова карта изгледа
овако:
x1x2
x3x4 00 01 11 10
00 0 0 0
01 0 0
11 0 0
10 0 0
f(x1 , x 2 , x 3 , x 4 ) x 2 ( x1 x3 x4 )
Задатак 73
а) ДНФ функције f(x1, x2, x3, x4) задате скуповима индекса: f(0) = {1, 6, 9, 11, 12, 14, 15},
Решење:
а) Функција f има вредност један на свим векторима, осим оних на којима има вредност
нула и на којима се функција не јавља. Затим нацртамо Карноову карту за функцију f која
зависи од 4 променљиве и попунимо она поља где функција има вредност један - f(1) и
она поља где се функција не јавља - f(b). Вектори који се никада не јављају у Карноовој
карти се обележавају са b и они могу бити врло битни при добијању минималнијег
решења. Како нам није важно коју вредност функција има на овим векторима, јер се они
никада не јављају, можемо користити ту вредност и као нулу и као јединицу. У овом
задатку користићемо b као вредност један, зато што тражимо минималну ДНФ функције:
x1x2
x3x4 00 01 11 10
00 1 b b
01 1 b
11 1 1
10 1 b
Ова Карноова карта има више решења, уколико користимо различите фигуре са два
поља. Нека од решења:
f(x1 , x 2 , x 3 , x 4 ) x2 x4 x1x2 x4 x1x3 x4 или
f(x1 , x 2 , x 3 , x 4 ) x2 x4 x1x2 x3 x1x3 x4 или
f(x1 , x 2 , x 3 , x 4 ) x2 x4 x2 x3 x4 x1x3 x4
x x2
x 3x 4 1 00 01 11 10
00 0
01 0
11 0 0 0 0
10 0