Pergunta

Eu tenho certeza que eu posso me lembrar de fazer algo parecido com isso em um dos meus cursos de nível universitário e que havia algum tipo de fórmula para isso, mas minha mente está me falhando além disso.

Dada a declaração: (a ou b ou d) E (A ou C)

Eu tenho certeza que este pode ser reduzido a: (a ou b ou d OU c)

Mas eu não me lembro como eu iria sobre provando isso.

Talvez fosse uma série de tabelas lógicas?

Foi útil?

Solução

Você não pode reduzir "(A ou b ou d) E (A ou C)" para "(a ou b ou d ou c)" porque o primeiro não está satisfeito com o "c = true, a, b, d = false", enquanto o último é. Então você não pode provar a redução correta ou:)

Em geral, existem muitas maneiras de reduzir fórmulas booleanas em tamanho, e é também uma questão do que você quer optimize (tamanho total? Número médio de avaliações de condição?). Karnaugh Maps funciona apenas para um pequeno número de variáveis. Reduzindo grandes formulaes booleanas em partes menores é um tópico avançado que é fundamental no exemplo desenho automático circuito lógico.

Outras dicas

Karnaugh mapeia ? redução expressão lógica?

A Karnaugh mapa é seu amigo aqui:

http://en.wikipedia.org/wiki/Karnaugh_map

Você vai meio que tem que construí-lo em sentido inverso a partir das equações acima, mas é uma boa ferramenta para dizer se ele pode ser reduzido ainda mais.

mapas de Karnaugh, a chave é "desenhar" todas as entradas possíveis e indicar as suas saídas. Então você pode começar a filtrar as entradas que não fazem a diferença para a saída reduzindo assim o mapa. Uma vez que ele é otimizado então você pode produzir sua lógica dela.

(a ou b ou d), e (A ou C)

Esta média quando um é verdadeiro, tudo o que é verdadeiro!

=> um ou {(b ou d), e (c)}

=> um OU (b e C) OU (d e C)

eu acho que o resultado (a ou b ou d ou c) é errado, mas me dar uma mão quando seu errado.

a ou {(b ou d) e C}

Raciocínio: Se "a", então a afirmação é verdadeira. outra coisa, você precisa de b ou d (para satisfazer a primeira parte da declaração) e C (satisfaz a segunda metade para casos em que! a

Usando Karnaugh mapeia :

Este é um OR b ou d:

 \ab
cd\ 00 01 11 10
---+-----------+
00 |  | X| X| X|
01 | X| X| X| X|
11 | X| X| X| X|
10 |  | X| X| X|
   +-----------+

Este é um OR c:

 \ab
cd\ 00 01 11 10
---+-----------+
00 |  |  | X| X|
01 |  |  | X| X|
11 | X| X| X| X|
10 | X| X| X| X|
   +-----------+

cruzamento-los, temos:

 \ab
cd\ 00 01 11 10
---+-----------+
00 |  |  | X| X|
01 |  |  | X| X|
11 | X| X| X| X|
10 |  | X| X| X|
   +-----------+

Obviamente, este é um OR (algo), onde o (algo) é:

    00 01
11 | X| X|
10 |  | X|

Uma vez que o (algo) não é um retângulo, que exige duas expressões, o que poderia ser tanto AND'ed ou OR'ed juntos, dependendo da forma como queremos abordá-lo. Usaremos ou neste exemplo, uma vez que dá uma expressão mais simples.

Neste caso, podemos agrupar os dois do lado do outro, com mais dois X para preencher toda a linha cd, então cd pode ser uma das expressões. Podemos também agrupar os dois em cima uns dos outros com os dois para o seu direito de formar um quadrado. Este quadrado representa o bc expressão, uma vez que tanto a e d variar dentro do quadrado.

Assim, a expressão final é um OU ((c, d) ou (b, d)) , ou a + CD + BD . Muito melhor, não é?

SOP forma mínima:

y = a | b&c | c&d;

POS têm o mesmo custo (número de portas para implementar diagrama lógico):

y = (a|c)&(a|b|d);

Sim, você pode provar isso. Você não pode reduzi-la a (a ou b ou d OU c)

Olhe para a 3ª linha abaixo. Sua redução não seria suficiente para gerar a resposta adequada.

Apenas executá-lo através:

A B C D
0 0 0 0 = 0
0 0 0 1 = 0
0 0 1 0 = 0
.
.
.
1 0 0 0 = 1 | 1 0 0 1 = 1 |

Até agora eu tenho (A OR (???)): (

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top