2009-12-22 5 views
0

원래 공 및 바구니 문제뿐만 아니라 내가 여기에 언급 : Balls and Baskets Problem Algorithm?공 및 바구니 VER2는

약간 다른 문제가 있습니다.

아직 N 명의 사람들이 있으며 무제한 볼을 가지고 있지만 이번에는 바구니가 없습니다.

문제는 다음과 같습니다 무제한 공 및 M 다른 바구니와 N 사람들이 있습니다

. 사람들은 바구니에 공을 던집니다.

같은 바구니에 공을 던지는 사람들의 그룹을 찾고 싶습니다.

인 바구니 A는 1, 2, 4, 6, 7, 14, 51 슬로우 32 인 B는 64,43 인 바구니 3, 4, 6, 7, 14, 15, 16 슬로우 C가 바구니 3, 4, 6,7,5, 87, 42, 32, 52, 55 에 던졌습니다. . . 등

이 예에서 사람 A와 B는 잘 연결되어있을 수 있습니다 (친구라고 말하십시오) (4,6,7,14 공통) 및 C도 연결되어 있지만 잘 연결되어 있지 않을 수 있습니다. (4, 6,7 공통)

나는 사람들의 매우 큰 데이터베이스에서 그런 식으로 4-5 명의 사람들을 찾고 싶다.

+2

우후! 더 숙제! –

+0

왜 모든 사람들은 공과 바구니를 본 후 그것이 절친다고 생각합니다. 그것은 실제로 심각한 문제이지만, 나는 심각하게 생각하지 않는다. 해결하려고하면 볼 수 있습니다. 실생활에서 어디에 사용될 수 있는지 생각할 수 없다면 그것은 또 다른 심각한 문제 일뿐입니다! 나는 아직 제안이 없습니다. – huhuhuuu

답변

0

잭슨의 아이디어는 시작입니다.

파벌을 찾은 후에는 모든 egdes의 바구니가 교차하여 각 클릿에 대해 공통 바구니 세트을 정의하십시오. (가장자리의 바구니는이 가장자리의 노드가 나타내는 사람들에게 공통적 인 바구니입니다). 공통 바구니 세트가 X보다 큰 경우에만이 도당은 실제로 연결된 그룹을 나타냅니다.

예를 들어, 원래의 질문에, 가장자리는 다음과 같습니다

A-B: weight=4, baskets=[4,6,7,14] 
A-C: weight=3, baskets=[4,6,7] 
B-C: weight=4, baskets=[3,4,6,7] 

미만 3에서 가지 치기, 당신이이 = 설정 일반적인 바구니 [4,6과, 파벌 것을 얻을, 7].

예를 들어 잭슨의 대답에 댓글을 달아 주면 공통 바구니 세트가 비어있어이 사람들이 실제로 연결되어 있지 않다는 것을 알 수 있습니다.

0

좋아, 내 초기 아이디어; 이것을 가중 그래프로 모델링하십시오. 사람들을 꼭짓점으로 만들고 바구니를 공유 할 때 링크를 만듭니다. 그들이 여러 바구니를 공유하는 경우 공유하는 각 바구니에 대한 링크의 무게를 늘리십시오. 따라서 귀하의 예에서 A와 B 사이의 모서리의 무게는 4가됩니다.

그런 다음 그룹의 모든 사람들이 그 값보다 작은 가중치를 갖는 가장자리를 잘라 내고 찾아야 할 것을 결정할 수 있습니다. 파벌을 결과 그래프에 표시합니다.

+0

덕분에 많은 잭슨하지만 여기에 귀하의 솔루션에서 볼 수있는 한 가지 문제가 있습니다 : 파벌을 알아 내고, 파벌을 알아 내고 난 후, 우리는 동일한 수의 공통 바구니를 가지고있을 것입니다.하지만이 공통 바구니는 다른 페어와 다를 수 있습니다 파벌에서. 예 : 1 개 출력 도당 ABCD 임계 3 AB 공통 BC 1 2 3 4를 가지고있는 한 공통화 CD 5 6 7 8 공통 AD 9 10 11 12 님 14 15 16 13를 가지고 AC는 공통적으로 17 18 19 20을 가지고 있습니다. BD는 2122 2324가 공통적으로 이며, 도당이 생산 될 수는 있지만 실제로는 도발처럼 보이지 않습니다. 나는 그것에 관해 명확히하고 있는가? – huhuhuuu

+0

나는 구별을보고, 이것에 대해 좀 더 생각해야 할 것이다. – Jackson

관련 문제