하나의 예는 완전한 명세를 작성하지 않습니다. 세트의 수집도 3 D
와 비어 있지 않은 교차로가 세트 중 가장 자주 발생하는 값을 만들 것
set E: 1 2 3
set F: 1 3
을 포함 예를 들어, 어떻게 당신의 대답은 다른 것입니까? 그래서 여기 내 가정은 다음과 같습니다
(원래 예에 D
) 목표 설정을 감안할 때 :
- 값 "중복 세트"더 관련이있는 (목표 세트 비어 있지 않은 교차로가 세트)에 그 중첩 세트에없는 값.
- 구문 1의 제약 조건에서 관련성은 발생 빈도에 따라 결정됩니다. 원래 예에서
는 A
는 D
과 중첩되므로 우주는 {1, 2, 3, 4, 5, 6, 7}로 분할되어 {1, 2, 3, 4} 및 비 중첩 중첩 {5, 6, 7}. 값의 빈도는 {1 : 2, 2 : 1, 3 : 2, 4 : 3, 5 : 2, 6 : 2, 7 : 1}입니다. 이러한 사실을 결합하면 4, 3, 4, 4, 4, 4, 5, 6, 1, 2 다음에 5, 6, 7이옵니다 (1에 관련성을 부여하지 않았 음을 알았습니다. 의도적 인 경우 최종 주문에서 대상 집합의 값을 제거하는 마지막 단계 일 수 있음)
조정 된 예제에서 주파수는 {1 : 4, 2 : 3, 3 : 4, 4 : 3, 5 : 2, 6 : 2, 7 : 1}이됩니다. 이는 중첩 주파수 {1 : 4, 2 : 3, 3 : 4, 4 : 3} 및 비 중첩 주파수 {5 : 2, 6 : 2, 7 : 1} 도 4는도 5, 6은이 알고리즘에 대한 제
의사 코드는 다음 기준 :
초기화 overlapping
및 universe
빈 세트로하고 frequency
빈 해시한다.
2.1 : 각각에 대해
은 (t
타겟 세트 이외의) 세트들의 컬렉션 s
세트. universe
을 s
및 universe
2.2의 조합으로 설정하십시오.
2.2.1. Set `overlapping` to the union of `overlapping` and `s`
2.3 : s
가 t
와 교차하는 경우 적어도 하나 개의 요소를 가지고있다. universe
의 차이 overlapping
정렬 결과의 첫 번째 부분으로 frequency
그들의 값에 의해 universe
의 요소
2.3.1. If 'e' is a key in `frequency`
2.3.1.1. Then increase the value (count) for `e` in `frequency` by 1
2.3.1.2. Else initialize the value (count) for `e` in `frequency` to 1
세트 nonOverlapping
각 요소에 s
e
들어.
nonOverlapping
의 요소를 덧붙여 frequency
의 값으로 정렬합니다.
SQL에서
모습의 수에 의해 모든 세트의 요소 및 순서를 선택합니다. 왜 D가 당신의 코드 세트 D : 1로 설정되어 있습니까? 이것이 결과 집합입니까? – Yada
아니요, 가장 관련성이 높은 번호를 얻을 수 있도록 다른 모든 사람들과 비교하기를 원하는 것입니다. 숫자 집합은 다른 사람들과 비교할 쿼리 일 수 있습니다. 즉, D가 1, 7 인 경우 : 4, 5, 6의 순서로 관련이 있어야합니다 (1, 7은 공통 4를 갖는 2 세트에 공통적이며, 7은 더 많은 '연결'을 갖는 세트에 있기 때문에) 다른 사람들과 마찬가지로 5,6가 가장 관련이 있어야합니다.), 3, 2 (연결이 적지 만 여전히 관련이 있기 때문에) -> 복잡하지만 잘 표현하는 법을 모르겠습니다. – stagas