[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[obm-l] Re: CRUEL





   Estive fazendo umas contas e creio que posso ter chegado a uma resposta parcial. Por uma questão de praticidade, numerei os vértices de A[0] até A[n-1], no sentido anti-horário.

   Tome o vértice A[0] e vá ligando com os outros vértices (A[1]; A[2]; ...; A[n-1]). Note que cada diagonal A[0]A[i] divide o plano em dois semi-planos. Se o polígono é convexo, podemos determinar exatamente quantos vértices ficam em cada semi-plano.

   Para quem está com a figura, é fácil ver que, dada a diagonal A[0]A[i], todos os pontos A[j] com 0<j<i estão em um semi-plano e todos os pontos com i<j<n estão em outro semi-plano. Qualquer diagonal com vértices em semi-planos distintos terá uma intersecção com a diagonal A[0]A[i].

   Logo, cada diagonal possui SUM[i=1, n-1]{(i-1)(n-1-i)/2} 
Leia-se "somatório de (i-1)(n-1-i)/2 quando i varia de 1 até n-1"

   Como são n diagonais, bastaria calcular n*SUM. Contudo, cada intersecção está sendo contada duas vezes (uma para cada diagonal que a "produz"). Assim, o resultado seria n*Sum/2.

   Devo confessar que não terminei as contas do somatório pq estou meio cansado, mas creio que esse seja o número de intersecções pedido. Aguardo comentários...

PROBLEMA:

(Admitindo que o valor encontrado antes esteja correto :-))

   O número encontrado antes NÃO necessariamente é o número de intersecções DISTINTAS. Pode-se afirmar com certeza que o número de distintas é menor ou igual ao valor calculado.

   O problema agora é: Como descobrir quais intersecções são múltiplas, isto é, formadas por mais de 2 diagonais? E como contá-las?


[]'s

Alexandre Tessarollo
-- 
__________________________________________________________
Sign-up for your own FREE Personalized E-mail at Mail.com
http://www.mail.com/?sr=signup

=========================================================================
Instruções para entrar na lista, sair da lista e usar a lista em
http://www.mat.puc-rio.br/~nicolau/olimp/obm-l.html
O administrador desta lista é <nicolau@mat.puc-rio.br>
=========================================================================