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 28. 05. 2011 14:02 — Editoval BigBear (28. 05. 2011 14:18)

BigBear
Příspěvky: 30
Reputace:   
 

Zkrácení logického výrazu

Ahojte, potřeboval bych co nejvíc zkrátit logický výraz. Ze školy jsem už poměrně dlouho a nějak jsem to zapomněl. Jedná se o výraz:
$((DF < A) \wedge (DT > B)) \vee
((DF > A) \wedge (DT < B)) \vee
((DF = A) \wedge (DT = B)) \vee$
pokracuje
$((DF < A) \wedge (DT < B)) \vee
((DF > A) \wedge (DT > B))$
Pomozte mi, prosím. Zkuste mě navést (vysvětlit, jak na to), nebo to prostě zkrátit a dát mi výsledek. Děkuji.

Offline

 

#2 28. 05. 2011 14:21 — Editoval BigBear (28. 05. 2011 14:22)

BigBear
Příspěvky: 30
Reputace:   
 

Re: Zkrácení logického výrazu

Ještě mě napadlo dodat, co to vlastně znamená a třeba vás napadne jiná, lepší varianta.
Potřebuji vytvořit SQL dotaz. Mám v databázi uložená data pomocí sloupců date_from a date_to. Na vstupu vím rozmezí datumů a potřebuji zjistit, zda toto rozmezí koliduje s čímkoliv v databázi. Nejjednodušší způsob tedy je tento:

Code:

var from = '2011-05-08';
var to = '2011-06-05';

SELECT * FROM `table` WHERE
((`date_from` < from) AND (`date_to` > to)) OR
((`date_from` >= from) AND (`date_to` <= to)) OR
((`date_from` < from) AND (`date_to` < to)) OR
((`date_from` > from) AND (`date_to` > to))

Tento dotaz se mi ale moc nelíbí, protože je časově náročný. Na "pár" záznamech to pobeží v pohodě, ale když jich tam bude deset tisíc...? Dohromady jsem dal dva podvýrazy celého výrazu a vznikly tak čtyři disjunkce, místo pěti (to jsme si moc nepomohli ;-) )

Offline

 

#3 28. 05. 2011 14:32

Phate
Příspěvky: 1740
Reputace:   99 
 

Re: Zkrácení logického výrazu

Chapu to spravne, ze jedine pripady, ktere to vynecha je, kdyz $(DF=A \wedge DF \neq B) \vee (DF \neq A \wedge DF=B)$?


Vykonávat věc, které se bojíme, je první krok k úspěchu.

Offline

 

#4 28. 05. 2011 14:41

BigBear
Příspěvky: 30
Reputace:   
 

Re: Zkrácení logického výrazu

Wow, tak tohle mi bohuzel nejak nedochazi, ale budu-li pracovat s lidsky citelnejsim prikladem, ktery jsem doplnil (s temi datumy), tak to rozhodne vynecha $(DF < A \wedge DT < A) \vee (DF > A \wedge DT > A)$

Offline

 

#5 28. 05. 2011 14:46

Phate
Příspěvky: 1740
Reputace:   99 
 

Re: Zkrácení logického výrazu

↑ BigBear:
To asi zalezi na tom, jestli $A < B$ ne? Protoze z podminky v tvem zadani $(\color{red}(DF < A) \wedge (DT < B)\color{black}) \vee
((DF > A) \wedge (DT > B))$ Pokud $A < B$, pak podminka $(DF < A \wedge DT < A) $ je pouze silnejsi nez $(DF < A) \wedge (DT < B)$


Vykonávat věc, které se bojíme, je první krok k úspěchu.

Offline

 

#6 28. 05. 2011 14:49

BigBear
Příspěvky: 30
Reputace:   
 

Re: Zkrácení logického výrazu

To asi ano. To jsem mel asi napsat hned (nj, ja premyslel nad tim ilustracnim prikladem, nikoliv matematicky :-( ). Takze ano, A bude vzdycky mensi nez B.

Offline

 

#7 28. 05. 2011 15:00

Phate
Příspěvky: 1740
Reputace:   99 
 

Re: Zkrácení logického výrazu

No narovinu nevim moc, co by se s tim dalo delat, mozna, protoze tech podminek je hodne zkusit najit, ktere moznosti nevyhovuji zadani a jake podminky pro ne plati a kdyz by jich bylo min, tak vyhledavat podle toho.


Vykonávat věc, které se bojíme, je první krok k úspěchu.

Offline

 

#8 28. 05. 2011 15:03

Moabiter
Místo: Rakovník
Příspěvky: 110
Škola: ČVUT FEL OI
Pozice: student
Reputace:   10 
Web
 

Re: Zkrácení logického výrazu

Hledáš průnik dvou intervalů jestli rozumim. Co třeba $(A \le DT)\wedge(B \ge DF)$

Offline

 

#9 28. 05. 2011 15:14

BigBear
Příspěvky: 30
Reputace:   
 

Re: Zkrácení logického výrazu

Nj, to by melo fungovat ;-)... mockrat dekuji.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson