Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 26. 06. 2017 13:28

Dejvak21
Zelenáč
Příspěvky: 1
Škola: UPOL
Pozice: student
Reputace:   
 

Boolova algebra

Zdravím, nevím si rady z dvěma příklady z boolovy algebry. A tímto bych rád poprosil o pomoc.

1.
Ukažte, že bod (1) věty 4.5 plyne z bodů (2), (3) a (4). (Pomocí boolovy algebry)

Věta 4.5 Pro libovolné prvky a, b, c Booleovy algebry B platí:
(1)    a + a = a
(2)    a + b = b + a (komutativita)
(3)    a + (b + c) = (a + b) + c (asociativita)
(4)    a + (ab) = a

Musíme si uvědomit, že Booleova algebra je distributivní komplementární svaz s prvky 0 a 1. Jehož počet je vždy 2 (na) n. Tímto říkáme, že svaz je distributivní a ke každému prvku z počtu 2 (na) n existuje komplement.

2.
4. Kapitola 4.31 Převeďte následující polynomy do úplného součinového tvaru pomocí Booleova kalkulu:
    x ̅y+ xy ̅ (symetrická diference x ⊕ y)
    x ⊕ (y → z)

Offline

 

#2 01. 08. 2017 10:31 — Editoval mracek (01. 08. 2017 10:37)

mracek
Zablokovaný
Příspěvky: 164
Reputace:   
 

Re: Boolova algebra

Zkusim to trochu sloziteji, i s dukazy jednotlivych rovnic. Ale klidne preskoc na 2 radky na konci :)

Mno, matouci je tam to plusko, protoze + je uplne jina funkce, kterou zname jako scitani cisel. Jenze tady + je OR operace. Podobne to nasobeni neni nasobeni, ale AND operace
Scitani binarnich cisel vypada takto:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10
---
Or operace / zapis tabulkou
.................. a b | z
0 + 0 = 0 ... 0 0 | 0
0 + 1 = 1 ... 0 1 | 1
1 + 0 = 1 ... 1 0 | 1
1 + 1 = 1 ... 1 1 | 1
--
And operace / zapis tabulkou
.................. a b | z
0 * 0 = 0 ... 0 0 | 0
0 * 1 = 1 ... 0 1 | 0
1 * 0 = 1 ... 1 0 | 0
1 * 1 = 1 ... 1 1 | 1
---
AND v programu jsou to treba podminky, chces treba zjistit, zda souradnice kulicky x,y jsou v nejakem obdelniku (x1,x2, y1,y2 / a,c,b,d)
a<x<b
c<y<d
prepsano
(a<x and x<b) and (c<y and y<d)
pokud je x>a, pak 1, x<b, pak 1, ...
(1 and 1) and (1 and 1)
pokud je vsechno 1, true, tak tecka na souradnicich x,y, je uvnitr obdelniku a,b,c,d. Ale pokud jenom jedna podminka je spatne, tak neni v obdelniku. To je princip AND operace, ve tvem pripade nasobeni.
---
Or operace je, pokud plati alespon jedna podminka, programu treba
heslo=='' or heslo==user, pak vypis: "Chyba: Nebylo zadano heslo nebo je shodne s uz. jmenem"
Pokud plati jedna z podminek, pak se ma uzivateli vypsat text.

Dukaz platnosti vzorcu:
---------------------------
a + a = a | a or a = a
1 + 1 = 1 ... ten vzorec plati pro tyto radky z OR tabulky
0 + 0 = 0
Cili, pokud je a=0, pak a+a = take 0. Pokud je a = 1, pak a+a = take 1.
Cili, musis si vypsat vsechny moznosti z prislusne tabulky, pro ktere to plati. To je dukaz, je ten vzorec plati.

a + b = b + a
-> a + b = ?
0 + 0 = 0 ... opet vsechny moznosti
0 + 1 = 1
1 + 0 = 1
1 + 1 = 1
-> b + a = ?
0 + 0 = 0 ... opet vsechny moznosti
0 + 1 = 1
1 + 0 = 1
1 + 1 = 1
kdyz je a=b=0, tak je vysledek 0
kdyz je a=b=1, tak je vysledek 1
kdyz je a<>b, je vysledek 1
A z tabulky vidis, ze vysledky se shoduji, takze rovnost plati
0 + 1 = 1 = 1 + 0 a=1, b=0
1 + 0 = 1 = 0 + 1, a=0, b=1
0 + 0 = 0 = 0 + 0, a=b=0
1 + 1 = 1 = 1 + 1, a=b=1

a + (b + c) = (a + b) + c (zkusim trochu zkratit)
Bohuzel musis vsechny moznosti, kombinace.
2 na 1 jsou 2 moznosti 0,1
2 na 2 jsou 4, 00, 01, 10, 11
2 na 3 je 8, 000, 001, 010, 011, totez pro 1, 100, 101, 110, 111 (3 ruzne promenne, v elektronice 3 ruzne dratky se signalem)
0 + (0 + 0) =
0 + (0 + 1) = ... do tabulky, b+c=u, a+b=v, a+u=X, a+v=Y
a b c | u | X | v | Y
0 0 0 |   |   |   |
0 0 1 |   |   |   |
0 1 0 |   |   |   |
0 1 1 |   |   |   |
1 0 0 |   |   |   |
1 0 1 |   |   |   |
1 1 0 |   |   |   |
1 1 1 |   |   |   |
a b c | u | X | v | Y
0 0 0 | 0 | 0 | 0 | 0
0 0 1 | 1 | 1 | 0 | 1
0 1 0 | 1 | 1 | 1 | 1
0 1 1 | 1 | 1 | 1 | 1
1 0 0 | 0 | 1 | 1 | 1
1 0 1 | 1 | 1 | 1 | 1
1 1 0 | 1 | 1 | 1 | 1
1 1 1 | 1 | 1 | 1 | 1
Dukaz, ze vzorec plati je, kdyz X = Y pro kazdy radek. Opet se pouzivala jen OR tabulka.

a + (ab) = a ... tady je to podobne, ale pouziva se tabulka pro AND i OR
u = ab ... u = a and b, Z = a or u
a b | u | Z
0 0 | 0 | 0
0 1 | 0 | 0
1 0 | 0 | 1
1 1 | 1 | 1
Z == a
Or ......... And (pridavam tabulky and, or zhora)
0 0 | 0 ... 0 0 | 0
0 1 | 1 ... 0 1 | 0
1 0 | 1 ... 1 0 | 0
1 1 | 1 ... 1 1 | 1
Tez by to slo napsat jako
a + (ab) = a * (b + 1) a z tabulky Or 1+cokoliv je vzdy 1, ... = a

---

Ok, tak ted vis, ze to plati. Ted, jak zjistit, ze veta 1 vyplyva z ostatnich?
(4) a + (ab) = a
kdyz bude b = 1, tak dostanes
a + (a) = a
tady by mozna bylo dobre pridat prave i tabulku dukazu te vety 4. Kdyz si pak vyberes jen ty radky, kde je b=1, tak by se mela leva a prava strana rovnat, sloupce 'Z' a 'a'

---
Problem s matikou je, ze je jako cinstina. Nema jednotne zapisy funkci, operaci.    Navic se pouzivaji stejne nazvy funkci pro ruzne operace, napriklad prave + pro scitani nebo OR.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson