#include <stdio.h>
int main(){
int a,b,c,d,y,y1,y2;
printf(" a b c d| Y|Y1|Y2\n--------+--+--+--\n");
for(a=0;a<2;a++)
for(b=0;b<2;b++)
for(c=0;c<2;c++)
for(d=0;d<2;d++){
/*問題の論理式*/
y = !a&&b&&!c || a&&!b&&d || !c&&!d || a&&!d;
/*加法形論理式*/
y1= a&&!b || !c&&!d || !a&&b&&!c || a&&!d;
/*乗法形論理式*/
y2= (a||!c) && (!a||!b||!d) && (a||b||!d);
printf("%2d%2d%2d%2d|%2d|%2d|%2d\n", a, b, c, d, y, y1, y2);
}
return 0;
}
a b c d| Y|Y1|Y2
--------+--+--+--
0 0 0 0| 1| 1| 1
0 0 0 1| 0| 0| 0
0 0 1 0| 0| 0| 0
0 0 1 1| 0| 0| 0
0 1 0 0| 1| 1| 1
0 1 0 1| 1| 1| 1
0 1 1 0| 0| 0| 0
0 1 1 1| 0| 0| 0
1 0 0 0| 1| 1| 1
1 0 0 1| 1| 1| 1
1 0 1 0| 1| 1| 1
1 0 1 1| 1| 1| 1
1 1 0 0| 1| 1| 1
1 1 0 1| 0| 0| 0
1 1 1 0| 1| 1| 1
1 1 1 1| 0| 0| 0