Je ne sais pas comment résoudre ce problème en temps , mais un algorithme existe.O ( n 2 log n )O ( n2)O ( n2Journaln )
Soit le cercle dont le centre est , le ème point, de rayon . Il n'est pas difficile de trouver que l'ensemble de points peut être entouré par un cercle de rayon si l'intersection de n'est pas vide. De plus, si n'est pas vide, il doit y avoir quelques points dans posés sur certains (la frontière de ). Donc, pour chaque et chaque point de sa liaison, nous essayons de trouver combien de cercles contiennents i i r P = { p 0 , p 1 , … , p m } r I ( P ) C ( p 0 ) , C ( p 1 ) , … , C ( p m ) I ( P ) I ( P ) bd C ( p i )C( sje)sjejerP={p0,p1,…,pm}rI(P)C(p0),C(p1),…,C(pm)I(P)I(P)bdC(pi)C ( s i ) p p pC(pi)C(si)pp . Le nombre maximum parmi tous les sera la réponse à ce problème.p
Examinons les points dans . Il y a une correspondance un à un entre les points sur et le nombre réel dans . Pour chaque cercle , l'intersection entre et peut être représentée par un intervalle . Donc, pour tous les cercles autres que , il y a au plus intervalles (certains cercles peuvent ne pas croiser ). Le nombre maximal peut être trouvé facilement en triant les points finaux d'intervalle, en les balayant dans l'ordre et en comptant le nombre de chevauchement actuel. Pour chaquebd C ( s i ) [ 0 , 2 π ) C ( s j ) C ( s j ) bd C ( s i ) [ b e g i n j , e n d j ] C ( s i ) n - 1 C ( s i ) 2bdC(si)bdC(si)[0,2π)C(sj)C(sj)bdC(si)[beginj,endj]C(si)n−1C(si)C ( s i )2(n−1)C(si) , cette étape peut être effectuée en temps , et il y a cercles, donc la complexité temporelle de cet algorithme est .n O ( n 2 log n )O(nlogn)nO(n2logn)