fork download
  1. #include <stdio.h>
  2.  
  3. int main() {
  4. printf("x y z | f_original | f_minimized\n");
  5. printf("-------------------------------\n");
  6.  
  7. for (int x = 0; x <= 1; x++) {
  8. for (int y = 0; y <= 1; y++) {
  9. for (int z = 0; z <= 1; z++) {
  10.  
  11. // Оригінальна функція:
  12. // f = ¬(z ∨ (¬y ∧ x)) → (¬x ∧ (¬z ∨ y))
  13. int not_y = !y;
  14. int A = z || (not_y && x); // A = z ∨ (¬y ∧ x)
  15. int left = !A; // ¬(...)
  16. int right = (!x) && ((!z) || y); // ¬x ∧ (¬z ∨ y)
  17. int f_original = (!left) || right; // імплікація: ¬left ∨ right
  18.  
  19. // Мінімізована функція:
  20. // f = ¬x ∨ ¬y ∨ z
  21. int f_min = (!x) || (!y) || z;
  22.  
  23. printf("%d %d %d | %d | %d\n",
  24. x, y, z, f_original, f_min);
  25. }
  26. }
  27. }
  28.  
  29. return 0;
  30. }
  31.  
Success #stdin #stdout 0s 5328KB
stdin
Standard input is empty
stdout
x y z | f_original | f_minimized
-------------------------------
0 0 0 |     1      |      1
0 0 1 |     1      |      1
0 1 0 |     1      |      1
0 1 1 |     1      |      1
1 0 0 |     1      |      1
1 0 1 |     1      |      1
1 1 0 |     0      |      0
1 1 1 |     1      |      1