Pagini recente » Monitorul de evaluare | Diferente pentru problema/lgput intre reviziile 6 si 7 | Atasamentele paginii Profil firutibogdan | Diferente pentru problema/noxornolife intre reviziile 7 si 20 | Diferente pentru voronoi intre reviziile 19 si 20
Diferente pentru
voronoi intre reviziile
#19 si
#20
Nu exista diferente intre titluri.
Diferente intre continut:
drepte paralele este un fascicol de drepte care se intalnesc la infinit (Euclid sa traiasca!)
# Sa luam dreapta ax+by+1=0. Daca normalizam dreapta (impartind prin sqrt(a*a+b*b)), aflam ca distanta de la dreapta la origine este 1/sqrt(a*a+b*b). Dualizand dreapta, obtinem punctul (a,b), care este situat la distanta sqrt(a*a+b*b) de origine. Mai expresiv, daca dreapta este la distanta d de origine, punctul dual este la distanta 1/d de origine. Mai interesant este ca punctul dual, originea si piciorul perpendicularei din origine pe dreapta sunt coliniare. E destul de usor
de demonstrat, daca nu v-ati luat inca un creion si o hartie e cazul sa o faceti, altfel cred si eu ca va plictisiti :).
Si-acum momentul picant, problema de la care am pornit. Aici va trebui sa va faceti singuri figurile, fiindca slash-urile si backslash-urile nu mai ajung. Luati o multime de drepte care definesc un poligon in jurul originii, deci sunt vizibile din origine. Luati si alte drepte care nu
intersecteaza acest poligon, deci nu sunt vizibile din origine. Asemanator figurii de mai sus, dualizati toate aceste drepte. Pentru fiecare dreapta, veti obtine un punct in partea opusa relativ la origine. Punctul este cu atat mai aproape de origine, cu cat dreapta este mai departe de origine.
Dorim sa separam acum dreptele vizibile din origine de celelalte drepte. Sa vedem daca nu putem lucra cumva cu punctele duale. Intuitiv, ce inseamna o dreapta INvizibila din origine? Inseamna o dreapta "departata" de origine (in sensul ca alte drepte vor fi mai aproape decat ea si o vor obtura). In limbaj dual, asta inseamna ca punctul dual va fi mai aproape de origine, in sensul ca vor fi alte puncte mai departe decat el.
Asta cred ca deja va sugereaza ideea de rezolvare. Daca v-ati gandit la infasuratoare convexa, ati pus punctul pe y. Algoritmul este urmatorul:
- Se da multimea de drepte (ai*x+bi*y+ci=0)
- Aducem toate dreptele la forma ai*x+bi*y+1=0, impartind prin ci
- Aflam infasuratoarea convexa a multimii de puncte (ai,bi)
- Punctele de pe aceasta infasuratoare convexa corespund dreptelor
vizibile din
origine.
De ce asa? Pentru ca punctele de pe infasuratoarea convexa sunt cele mai departate de origine, deci dreptele lor duale sunt cele mai apropiate de origine. Va las placerea de a analiza cazurile particulare, de exemplu cele in care multimea de drepte nu defineste un poligon inchis in jurul originii, ci unul deschis (hint: originea nu apartine infasuratorii convexe a punctelor duale).
O alta tema de gandire este: ce se intampla in cazul limita cand trei sau mai multe puncte sunt coliniare pe infasuratoarea convexa?
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.