Bitové mapy

Uživatelský avatar
gofry
Matfyz(ák|ačka) level I
Příspěvky: 49
Registrován: 13. 1. 2006 23:41

Bitové mapy

Příspěvek od gofry »

Vedel by mi niekto vysvetliť, ako fungujú bitové mapy? Konkrétne teda ako by sa riešil dotaz D2 v skriptách na strane 28 (vydanie skript z 2004). Ak totiž budem riešiť podobným prístupom ako dotaz D1, tak dostanem

Kód: Vybrat vše

Dukla:    0100000000100001
not(Mír): 1101111101101111
--------------------------
and:      0100000000100001
čo je presne to isté ako Dukla, ale je zrejmé, že výsledkom by mali byť samé nuly, pretože neexistuje predstavenie, ktoré sa hrá v Dukle ale nie v Míri.

Príklad by som chápal, keby každé predstavenie malo nanajvýš jeden záznam, a k tomu bitovú mapu ako v nasl. prípade:

Kód: Vybrat vše

Dukla Blaník Jalta Metro Mír Dílo
   1     0     0     1    1  Apokryfy
   0     1     1     1    0  Babička
   1     1     1     1    1  Dobrý človek
   1     1     1     1    1  Návrat
To by potom dotaz D2 bol tvaru:

Kód: Vybrat vše

Dukla:    1011
not(Mír): 0100
--------------
and:      0000
A všetko by bolo v poriadku, ale to by potom trochu inak malo vyzerať aj riešenie dotazu D1.
Uživatelský avatar
Tuetschek
Supermatfyz(ák|ačka)
Příspěvky: 657
Registrován: 15. 6. 2005 13:54
Typ studia: Nestuduji ale učím na MFF
Kontaktovat uživatele:

Příspěvek od Tuetschek »

Jak to chapu ja je ze pro kazdou z moznych hodnot daneho atributu vyrobis retezec 0 a 1, ktery pokud ma na i-te pozici "1", pak to znamena, ze i-ty zaznam ma prave tuto hodnotu daneho atributu ...

No a tady mi prijde ze ten priklad nema nic moc spolecneho s logikou -- pokud to delas jako priklad 1, musi ti vyjit prave vsechna predstaveni uvadena v Dukle, protoze 1 predstaveni != 1 dilo, tj. "Navrat v Dukle" a "Navrat v Miru" jsou brany jako 2 ruzna predstaveni (a je jasny ze "Navrat v Dukle" v Miru uvadet nemohou :) ).
Plug 'n' Pray.
Uživatelský avatar
Tajro
Matfyz(ák|ačka) level I
Příspěvky: 28
Registrován: 14. 2. 2006 08:23
Typ studia: Informatika Bc.
Bydliště: Praha, Morava
Kontaktovat uživatele:

Příspěvek od Tajro »

Souhlasím. Přesně tak..
Takže abych to řekl jinými slovy: Dotazem

"Najdi díla, která uvádějí v klubu Dukla a ne v klubu Mír"
autor asi myslel
"Najdi PŘEDSTAVENÍ, která se hrají v Dukle a ne v Míru"

.... a takové je každé představení, které se hraje v Dukle... proto ten výsledek Dukla and not Mír = Dukla... Jo, přiznejme si, že je to trapný dotaz, hooodně trapný... a skutečně nic nevypovídá o tom, která díla se hrají v Dukle a zároveň ne v Míru... abychom zjistili i tohle, museli bychom si vytvořit bitové vektory i nad doménou atributu DÍLO..

Anebo to vzít množinově, což je triviální..
Udělat si množinu RID pro bitový vektor Dukla,
tj. { Apokryfy, Dobrý člověk, Návrat },
pak množinu RID pro bitový vektor Mír,
tj. { Apokryfy, Dobrý člověk, Návrat } :-))
a pak je od sebe odečíst, takže výsledkem je prázdná množina..
No jo, moc to řeším, promiňte...
Ale kdyžtak mě opravte, díky.. :wink:
Uživatelský avatar
gofry
Matfyz(ák|ačka) level I
Příspěvky: 49
Registrován: 13. 1. 2006 23:41

Příspěvek od gofry »

Tak takto by ma nad tým skutočne nenapadlo uvažovať ;-) Dík za vysvetlenie.
Odpovědět

Zpět na „2006“