您可以使用卡诺图来简化与给定真值表匹配的原始表达式:
public function loadUserByUsername($login)
{
$user = $this->createQueryBuilder('u')
->where('u.login = :login')
->select('u, r, v')
->leftJoin('u.roles', 'r')
->leftJoin('r.views', 'v')
->setParameter('login', $login)
->getQuery()
->getOneOrNullResult();
if ($user) {
$message = sprintf(
'Unable to find an active admin AppBundle:User object identified by "%s".',
$login
);
throw new UsernameNotFoundException($message);
}
return $user;
}
f(x,y,z) = ∑(1,3,4,6,7) = m1 + m3 + m4 + m6 + m7
= ¬x·¬y·z + ¬x·y·z + x·y·z + x·¬y·¬z + x·y·¬z //sum of minterms
f(x,y,z) = ∏(0,2,5) = M0 · M2 · M5
= (x + y + z)·(x + ¬y + z)·(¬x + y + ¬z) //product of maxterms
f(x,y,z) = x·y + ¬x·z + x·¬z //minimal DNF
= (x + z)·(¬x + y + ¬z) //minimal CNF