![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Tri |
![]()
Сообщение
#1
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 94 Регистрация: 26.10.2007 Город: Тюмень Учебное заведение: ТГНГУ Вы: студент ![]() |
Здравствуйте.
Есть такое задание: вывести все значения всех булевых функций от трёх переменных(только с конъюнкцией и дизъюнкцией). Также есть условие: значения равных функций вывести только один раз, и не выводить значения функций, которые при всех 1 на входе дают 1 и на выходе. В задании сказано, что таких функций должно получиться 34, если я всё правильно поняла, но у меня получается 35: xyz - 7 функций, x v y v z - 7, x v yz, y v xz, z v xy - ещё 21. Подскажте, пожалуйста, в чём может быть ошибка. Или я неправильно поняла задание? Ещё я попробовала реализовать программу, пока только для 2 функций: Код var i,j,k,a:integer; function con(i,j,k: integer): integer; begin CON:=i and j and k; end; function dis(i,j,k: integer): integer; begin DIS:= i or j or k; end; begin Write('x y z x^y^z'); Writeln; for i:=0 to 1 do begin for j:=0 to 1 do for k:=0 to 1 do begin if (i=1) and (j=1) and (k=1) then Break; Write(i,' ',j,' ',k); a:=CON(i,j,k); Write(' ', a); Writeln; end; end; Writeln; Write('x y z x v y v z'); Writeln; for i:=0 to 1 do begin for j:=0 to 1 do for k:=0 to 1 do begin if (i=1) and (j=1) and (k=1) then Break; Write(i,' ',j,' ',k); a:=DIS(i,j,k); Write(' ', a); Writeln; end; end; Readln; end. Подскажите, пожалуйста, более изящное решение, и возможно ли сделать, чтобы программа была универсальна для n переменных? Заранее огромное спасибо! |
![]() ![]() |
malk |
![]()
Сообщение
#2
|
Школьник ![]() Группа: Продвинутые Сообщений: 24 Регистрация: 4.10.2007 Город: СПб ![]() |
Цитата Есть такое задание: вывести все значения всех булевых функций от трёх переменных(только с конъюнкцией и дизъюнкцией). Также есть условие: значения равных функций вывести только один раз, и не выводить значения функций, которые при всех 1 на входе дают 1 и на выходе. 1. Если в булевой функции используется только конъюнкция и дизъюнкция, то при всех 1 на входе на выходе всегда будет 1. 2. Если же разрешена и инверсия, то получаем полный базис. У меня получилось что различных функций, которые зависят строго от 3 параметров и от всех 1 на выходе дают 0 имеется 109. Цитата В задании сказано, что таких функций должно получиться 34, если я всё правильно поняла, но у меня получается 35: xyz - 7 функций, x v y v z - 7, x v yz, y v xz, z v xy - ещё 21. Если правильно понял, вы путаете функции и значения функции от различных параметров. xyz - это одна функция. По программе: 1. В паскале есть логические функции: and, or, not, xor. И не нужно их переписывать. 2. Для второй функции вычисляется совсем не то, что указано. |
Tri |
![]()
Сообщение
#3
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 94 Регистрация: 26.10.2007 Город: Тюмень Учебное заведение: ТГНГУ Вы: студент ![]() |
Цитата Если правильно понял, вы путаете функции и значения функции от различных параметров. Там, конечно, 7 значений функции, а не функции:) По программе всё исправила. Инверсия по заданию допускается. А есть ли среди этих 109 полученных функций одинаковые равные функции? Может, если их убрать, то их меньше получится? |
malk |
![]()
Сообщение
#4
|
Школьник ![]() Группа: Продвинутые Сообщений: 24 Регистрация: 4.10.2007 Город: СПб ![]() |
Для функции от 3-х переменных возможно 2^3=8 комбинаций переменных.
Следовательно, всего различных функций 2^8=256. Функций, которые от (1,1,1) дают 0 256/2=128. Функция-константа 1. Функций, зависищих строго от одного переменного 3*1=3. Функций, зависищих строго от двух переменных 3*5=15. 128-1-3-15=109. Может, если привести задание точно и полностью станет понятнее? |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 21:25 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru