Boolean

From
Nickita A Startcev (2:5030/1039.8)
To
Stanislav Elinson
Date
2002-12-25T22:46:10Z
Area
RU.ALGORITHMS
Привет, Stanislav !


 23 Dec 02 , 08:37  Stanislav Elinson писал к All:

 SE> Привет тебе ALL!!
 SE> Простенькая такая задачка, но в тормозах я сегодня;))
 SE> Имеет n болевских переменных, например 3: a1,a2a3
 SE> Имеем функцию f(a1,a2,a3), определенную через таблицу:
 SE> a1 a2 a3  f()
 SE> 0   0  0    0
 SE> 0   0  1    1
 SE> 0   1  0    0
 SE> 0   1  1    0
 SE> 1   0  0    0
 SE> 1   0  1    0
 SE> 1   1  0    1
 SE> 1   1  1    1

 SE> Как это редуцировать до вида f() = (a3) || (a1 && a2)
 SE> Интересует алгоритм несложный для программирования.

Читаем таблицу построчно, те строки где справа 1:
not(a1)*not(a2)*a3 ; a1*a2*not(a3) ; a1*a2*a3 ;
Дальше начинаем 'склеивать' похожие слагаемые;
второе и третье склеивается в a1*a2, которое можно дописать к фунции, второе и третье слагаемое можно выкинуть. Дальше не помню, надо искать справочник.

.                                                С уважением, Никита.
... Но вслух он этого не сказал, потому что он был очень умный Кролик.
--- GoldED+/LNX 1.1.4.7
 * Origin: Люди Билли не любили... (c) (2:5030/1039.8)